五一假期,祝大家节日快乐。本篇继续自动化测试知识梳理。selenium 自己封装好用的方法,如悬停,句柄获取,可直接调用,实现自己的需求。
1、多窗口切换
即获取页面的句柄,来实现页面的切换,以hao123为例,来实现效果,代码如下所示。
public static void main(String [] args) throws InterruptedException{
System.setProperty("webdriver.chrome.driver","D:/software/learn/chromedriver_win32/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.hao123.com");
String firtHandle = driver.getWindowHandle();
driver.findElement(By.linkText("hao123新闻")).click();
Set<String> h = driver.getWindowHandles();
for(String handle : h){
System.out.print("当前遍历值为:"+handle);
Thread.sleep(1000);
if(handle != firtHandle){
// 句柄切换
driver.switchTo().window(handle);
}
}
driver.findElement(By.linkText("一键登录")).click();
}
跳转截图如下所示。
2、悬停效果
selenium自带悬停方法,直接调用即可。以百度为例,主要调用过程如下所示。
driver.get("http://www.baidu.com");
Actions action = new Actions(driver);
// 设置位置点击和停留
action.clickAndHold(driver.findElement(By.linkText("设置"))).perform();
driver.findElement(By.className("setpred")).click();
实现效果如下所示。