NoSuchWindowException:Unable to find element (on closed window)/(with xpath)
2016-10-27 12:51
399 查看
test ENV
os.name: ‘Windows 10’os.arch: ‘amd64’
java.version: ‘1.8.0_45’
Explorer version: IE11
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
测试代码1
@Test public void TestDriver(){ driver.get("http://10.202.113.22:8081/cashier"); driver.findElement(By.xpath("//input[@name='policyNo']")).sendKeys("3766"); driver.findElement(By.name("query")).click(); }
测试代码2
@Test public void TestDriver(){ driver.get("http://10.202.113.22:8081/cashier"); waitPageLoad(); driver.findElement(By.xpath("//input[@name='policyNo']")).sendKeys("3766"); driver.findElement(By.name("query")).click(); } public void waitPageLoad(){ new WebDriverWait(driver, 30).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { JavascriptExecutor js = (JavascriptExecutor) driver; return (Boolean) js.executeScript("return document.readyState;").equals("complete"); } }); }
driver初始化代码
static WebDriver driver; @Before public void setup() { System.setProperty("webdriver.ie.driver", "src/main/resources/IEDriverServer.exe"); DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); driver = new InternetExplorerDriver(ieCapabilities); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.manage().window().maximize(); } @After public void testAfter() { driver.close(); }
实际上这两个代码在使用localhost的时候
既用 driver.get(“http://localhost:8081/cashier“);
的时候,已经通过测试,但是在部署到服务器上时,上面两段代码分别报了以下错误
org.openqa.selenium.NoSuchElementException: Unable to find element with xpath == //input[@name='policyNo'] (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 30.50 seconds
org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 264 milliseconds
解决办法
Internet Options –> Security –> “Enable Protected Mode” on ALL zones should either be checked or ALL unchecked.参考http://stackoverflow.com/questions/31134408/unable-to-find-element-on-closed-window-on-ie-11-working-with-selenium
暂不知道导致该问题的具体原因.
相关文章推荐
- 【Python】selenium调用IE11浏览器,报错“找不到元素”NoSuchWindowException: Message:Unable to find element on closed window
- iframe,switchToWindow报错--no such element: Unable to locate element
- fix org.openqa.selenium.NoSuchWindowException when find element on windows8.1 ie11.
- NoSuchElementException: Unable to locate element--三种系统等待时间
- 解决:Redis:java.util.NoSuchElementException: Unable to validate object at
- org.openqa.selenium.NoSuchElementException: Unable to locate element: 异常解决方法
- Unable to load NLS charset,U盘挂载不了,USB挂载时提示“No Such Device”,mount: Mounting /dev/sda1 on /mnt failed: No such device
- [转]org.openqa.selenium.NoSuchElementException: Unable to locate element: 异常解决方法
- no such element: Unable to locate element--窗口切换
- Appium 报错:org.openqa.selenium.NoSuchWindowException: no such window: target window already closed
- Unable to load NLS charset,U盘挂载不了,USB挂载时提示“No Such Device”,mount: Mounting /dev/sda1 on /mnt failed
- javascript错误解决:Unable to modify the parent container element before the child element is closed
- IE8 中"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"错误
- Unable to open log device '/dev/log/main&': No such file or directory
- Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK(转
- Ruby on rails: no such file to load -- openssl
- IE 8 HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
- GWT unable to find gwt.xml file on your classpath
- Unable to open log device ‘/dev/log/main’: No such file or directory
- javascript错误解决:Unable to modify the parent container element before the child element is closed