弹窗类型的不同,定位元素前的处理方式不同。
- ajax 直接定位即可
- iframe:switchTo
一般熟悉的前端界面,比较容易看出、猜出哪里用到了iframe,如果没有看出,也可以F12看一下
driver.switchTo().frame(0);
- 打开新窗口:switchTo
//切换到最新的窗口
driver.switchTo().window((String)driver.getWindowHandles().toArray()[-1]);
//获取所有窗口的句柄信息
driver.getWindowHandles();
- alert、confirm、prompt:先切换弹窗,再定位元素
//创建显示等待,判断弹窗出现
new webDriverWait(driver,5).until(ExpectedConditons.alertIsPresent());
//切换弹窗
driver.switchTo().alert();