在使用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();
}