selenium + python 定位日期控件(處理iframe)兩種方法


對於日期控件的處理用了兩個辦法。

1.由於日期控件輸入框是只讀屬性的如

<input id="txtDate1" class="appinp" type="text" style="width: 100px;" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm'})" name="txtDate" readonly="readonly" value="">

其中readonly的意思就是只讀。所以方法1就是調用js把這個只讀屬性刪了,之后在send_keys值進去如例:

js = '$(\'input[id=txtDate1]\').removeAttr(\'readonly\')'
browser.execute_script(js)

browser.find_element_by_id('txtDate1').send_keys('2013-09-11 18:25')

  

 

2.方法1其實有點取巧的意思在看下方法2

日期控件其實在html里面也是一個iframe。那么我們只需要來定位到這個iframe就OK。

一般情況 下iframe會有id/name這樣的元素。 在定位時來按id/name查詢即可。(具體例子可能 百度)

這里介紹的是無id/name時如何處理,代碼如下

dat = browser.find_element_by_tag_name('iframe')
browser.switch_to_frame(dat)
browser.find_element_by_xpath(".//*[@id='dpTodayInput']").click()
browser.switch_to_default_content()

使用tag_name來找到這個iframe(前提是你的iframe為可用(不是灰色))

之后使用python webdriver的 switch_to_frame()方法來定位到這個iframe上面

使用xpath的方法來找到具體你要點擊日期控件上的按鈕

由於你現在處於現在iframe里面。所以你需要跳出,方法switch_to_default_content()。

(注:不是只有tag_name方法才能找到iframe,使用別的也可以,歡迎大家來補充)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM