下图显示了单击“随机用户”文本时出现的弹出窗口; WD无法将焦点转移到您看到的弹出窗口。
以下是我使用的代码以及
中注释的各种试用代码public static void teardownAppRetrieveOnce() throws InterruptedException {
synchronized(obj){
obj.wait(2000);
driver.findElement(By.xpath(".//*[@id='sidebar']/nav/ul[2]/li[3]/button[1]/span/span")).click();
System.out.println("Clicked sidebar..");
obj.wait(2000);
String winHandleBefore = driver.getWindowHandle();
**driver.switchTo().window(winHandleBefore);
driver.switchTo().findElement(By.id(".//*[@id='logoutButton']")).click();**
***driver.switchTo().activeElement().findElement(By.id(".//*[@id='logoutButton']")).click();***
System.out.println("Clicked on logout");
obj.wait(2000);
driver.switchTo().alert().accept();
obj.wait(2000);
System.out.println("Logged out...");
}
}
请帮助我澄清这种弹出窗口是否意味着要处理一个单独的新窗口或框架?
注意:
答案 0 :(得分:1)
我在WebDriver / AngularJS上遇到了很多麻烦。有时WebElement
的本地Selenium方法有效 - 有时不行。最好的解决方案是在网页上执行原始Javascript。
我是你的情况,它会是这样的:
driver.executeScript("$x(\".//*[@id='logoutButton']\")[0].click()");