ElementNotVisible exception in Selenium WebDriver
生活随笔
收集整理的這篇文章主要介紹了
ElementNotVisible exception in Selenium WebDriver
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 在用webdriver做自動化測試的過程中,如果對頁面上的隱藏元素,如下拉列表或是浮層進行操作的時候,常常會遇到:"org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with"提示。但是我們用isPresentByXpath()等測試當前元素的時候,返回值為True。 在網上搜索了一下解決辦法,請參考:http://nitinpurswani.blogspot.com/2010/09/elementnotvisible-exception-in-selenium.html
?? 結合我自己的調式,用直接執行JS對應的操作比較方便。
?? (1)對浮層進行輸入文字
???? JavascriptExecutor j= (JavascriptExecutor)driver;
???? j.executeScript("document.findElementById('123').style.display='block'; ");
???? 然后再WebElement.sendKeys ("The words you want to type");
??? (2)執行浮層上的操作,如單擊
???? JavascriptExecutor j= (JavascriptExecutor)driver;
???? j.executeScript("document.findElementById('123').click() ");
??? 當然Document的很多方法都可以用來定位:
??? (1)getElementById 獲取對 ID 標簽屬性為指定值的第一個對象的引用。
??? (2)getElementsByName 根據 NAME 標簽屬性的值獲取對象的集合。
??? (3)getElementsByTagName 獲取基于指定元素名稱的對象集合。
?? ?
??? 如果要定位的頁面元素沒有這些兒屬性,定位或操作的時候就會相對麻煩一點兒,這也是權宜之計,以后有什么好的方法,再跟大家分享。
?? 結合我自己的調式,用直接執行JS對應的操作比較方便。
?? (1)對浮層進行輸入文字
???? JavascriptExecutor j= (JavascriptExecutor)driver;
???? j.executeScript("document.findElementById('123').style.display='block'; ");
???? 然后再WebElement.sendKeys ("The words you want to type");
??? (2)執行浮層上的操作,如單擊
???? JavascriptExecutor j= (JavascriptExecutor)driver;
???? j.executeScript("document.findElementById('123').click() ");
??? 當然Document的很多方法都可以用來定位:
??? (1)getElementById 獲取對 ID 標簽屬性為指定值的第一個對象的引用。
??? (2)getElementsByName 根據 NAME 標簽屬性的值獲取對象的集合。
??? (3)getElementsByTagName 獲取基于指定元素名稱的對象集合。
?? ?
??? 如果要定位的頁面元素沒有這些兒屬性,定位或操作的時候就會相對麻煩一點兒,這也是權宜之計,以后有什么好的方法,再跟大家分享。
轉載于:https://www.cnblogs.com/eagleking0318/archive/2013/03/01/6521103.html
總結
以上是生活随笔為你收集整理的ElementNotVisible exception in Selenium WebDriver的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codetyphon, Lazarus+
- 下一篇: 《超越想象——Windows_8应用设计