Selenium 弹出框、页面跳转总结_dangliuzi_selenium处理弹出窗口
Selenium 弹出框、页面跳转总结_dangliuzi由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“selenium处理弹出窗口”。
在eclipse中运行!验证处理过程。
Selenium 弹出框、页面跳转、遍历相同控件、执行js
1、对话框处理
Alert alert = driver.switchTo().alert();alert.accept();//确定 alert.dismi();//取消
alert.getText();//取到文本内容
实际系统中,弹出窗口必定是某些操作完成、信息加载之后用做提示,因此弹出窗口有时出现得快,有时出现得慢,直接使用driver.switchTo().alert();很容易出现执行失败的情况。
咱们先判断是否出现了弹出框,封装成以下方法: protected boolean alertExists(int seconds){ long start = System.currentTimeMillis();while((System.currentTimeMillis()-start)
2、页面跳转,弹出窗口 //得到当前窗口的句柄
String currentWindow = driver.getWindowHandle();//得到所有窗口的句柄
Set handles = driver.getWindowHandles();
Iterator it = handles.iterator();while(it.hasNext()){ if(currentWindow == it.next())continue;WebDriver window = driver.switchTo().window(it.next());//获得新窗口,新的webDriver实例。
System.out.println(“title,url = ”+window.getTitle()+“,”+window.getCurrentUrl());}
另外,还有的iframe 之间转换方法
driver.switchTo().defaultContent();切换到某个frame:
driver.switchTo().frame(“leftFrame”);从一个frame切换到另一个frame: driver.switchTo().frame(“mainFrame”);
切换到某个window:
driver.switchTo().window(“windowName”);
3、遍历控件
List elements= driver.findElements(By.linkText(“开始学习”));elements.get(1).click();findElements()方法返回所有相同的WebElement的List,咱们直接访问某一个元素,也可以遍历操作,,这种功能大家都不回拒绝
遍历
for(Iterator i = elements.iterator();i.hasNext();){ WebElement integerRef = i.next();}
4、执行JS
Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如: JavascriptExecutor js =(JavascriptExecutor)driver;
js.executeScript(“(function(){inventoryGridMgr.setTableFieldValue('”+ inventoryId + “','” + fieldName + “','”
+ value + “');})()”);