1.访问某页面后获取不到某些元素
尝试Thread.sleep(5000), 等待一下,可能页面没有渲染完成,页面有些元素是异步加载的。
2.在case执行过程中,某些操作触发新打开一个页面,获取不到新页面的元素
在对web页面开发自动化代码的过程中,当需要操作新窗口中的新页面时,直接访问页面元素时访问不到的。需要获取新窗口的句柄,才能操作该页面下的界面元素。
String winHandleBefore = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles())
{
if (winHandle.equals(winHandleBefore)){
continue;
}
driver.switchTo().window(winHandle);
break;
}
3.有时候我们定位的元素在页面的某个iframe里面,你会发现获取不到这个元素
// 进入 id 叫frameA 的 iframe
dr.switchTo().frame("frameA");
// 回到主窗口
dr.switchTo().defaultContent();
通过String req = dirver.findElement(By.id("xxx")).getAttribute("value");