在使用selenium-Java对元素进行定位时经常遇见以下两种问题:
问题一:在当前页面进行跳转时,提示 Unable to locate element
原因:driver在打开网页时,网页加载速度过慢,导致接下来的语句找不到元素;
解决办法:在跳转之前Thread.sleep(3000);
问题二:在页面跳转时产生窗口切换,提示Unable to locate element
原因:窗口句柄还停留在上一个页面,需要对窗口进行切换,获得当前句柄之后,再进行跳转,就不会出现问题了。
java实现如下:
/*
* 窗口切换,获取窗口句柄
*/
String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()) {
if (winHandle.equals(winHandleBefore)) {
continue;
}
driver.switchTo().window(winHandle);
break;
}
driver.findElement(By.linkText("基本信息")).click();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
来源:https://www.cnblogs.com/zengfh/p/12287935.html