<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] **前言** ??? 日歷控件是web網站上經常會遇到的一個場景,有些輸入框是可以直接輸入日期的,有些不能,以我們經常搶票的12306網站為例,詳細講解如何解決日歷控件為readonly屬性的問題。 ??? 基本思路:先用js去掉readonly屬性,然后直接輸入日期文本內容 ## 一、日歷控件 1. 打開12306的車票查詢界面,在出發日期輸入框無法直接輸入時間 2. 常規思路是點開日歷控件彈出框,從日歷控件上點日期,這樣操作比較煩躁,并且我們測試的重點不在日歷控件上,只是想輸入個時間,做下一步的操作 3. Chrome用F12查看輸入框的屬性:readonly="readonly",如下: ``` <input type="text" class="input inp-txt_select" value="2018-07-21" id="train_date" readonly=""> ``` ![Snipaste_2020-08-17_16-55-09.png](https://i.loli.net/2020/08/17/jGs1AKiYNoVtwUy.png) <br /> ## 二、去掉readonly屬性 1. 很明顯這種元素的屬性是readonly,輸入框是無法直接輸入的,這時候需要先去掉元素的readonly屬性,然后就可以輸入啦。 2. 點擊F12的“編輯按鈕”,找到對應元素,直接刪除readonly="readonly",然后回車。 3. 在頁面出發日位置輸入:yoyoketang 試試,嘿嘿,發現可以輸入成功。當然這里只是為了驗證可以輸入內容,測試時候還是輸入測試的日期。 ![Snipaste_2020-08-17_16-57-22.png](https://i.loli.net/2020/08/17/IAZHqyOmpRxvk7d.png) <br /> ## 三、用js去掉readonly屬性 1. 用js去掉元素屬性基本思路:先定位到元素,然后用removeAttribute("readonly")方法刪除屬性。 2. 出發日元素id為:train\_date,對應js代碼為:'document.getElementById("train\_date").removeAttribute("readonly");' ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") # 去掉元素的readonly屬性 js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) ``` <br /> ## 四、輸入日期 1. 輸入日期前,一定要先清空文本,要不然無法輸入成功的。 2. 這里輸入日期后,會自動彈出日歷控件,隨便點下其它位置就好了,接下來會用js方法傳入日期,就不會彈啦! ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") # 去掉元素的readonly屬性 js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) # 清空文本后輸入值 driver.find_element_by_id("train_date").clear() driver.find_element_by_id("train_date").send_keys("2020-10-01") ``` <br /> ## 五、js方法輸入日期 1. 這里也可以用js方法輸入日期,其實很簡單,直接改掉輸入框元素的value值就可以啦 ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") # 去掉元素的readonly屬性 js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) # 用js方法輸入日期 js_value = 'document.getElementById("train_date").value="2020-10-01"' driver.execute_script(js_value) ``` <br /> ## 六、參考代碼如下: ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") # 去掉元素的readonly屬性 js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) # 用js方法輸入日期 js_value = 'document.getElementById("train_date").value="2020-10-01"' driver.execute_script(js_value) # 清空文本后輸入值 driver.find_element_by_id("train_date").clear() driver.find_element_by_id("train_date").send_keys("2020-10-01") ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看