selenium元素明明可見但is_displayed()為False


selenium元素明明可見但is_displayed()為False,這樣造成click的時候拋出異常:不可見的元素。目前知道的可選方案有:

修改頁面當前元素,或者當前元素父元素的CSS,使元素的isDisplayed()值為true

相關信息如下:
1,isDisplayed為false,是指那個元素是存在的,只是webdriver認為不見.回到關鍵問題,webdriver是如何判斷一個元素是否displayed,請參照:

http://www.w3.org/TR/webdriver/#determining-visibility

2、存在使用webElement.text取不到任何字符,但是用webElement.get_attribute("innerHTML")能夠取到字符的情況,特別是is_displayed()屬性為false的時候。

3、可以使用JavaScript修改元素的可見屬性。
browser.execute_script('$(arguments[0]).fadeIn()', currentElement)
browser.execute_script('$(arguments[0]).style.display=""',currentElement)
這兩條語句都可以,注意要執行:
webDriver.execute_script(js)

4、我的這次錯誤,最后找到原因了,是因為webElement找錯了,有3個相同屬性的,只有一個是可見的,是網頁上見到的那個。IE下的調測真實麻煩,這個網站是IE only的,所以沒有別的辦法。

 

轉載於:http://blog.sina.com.cn/s/blog_591c97810102wzk8.html


免責聲明!

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



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