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