Selenium自动化操作
1、跳转页面播放视频
我们以b站为例,测试是否可以点击模块进行播放视频
//点击页面看是否视频正常播放public void turn() throws InterruptedException {driver.findElement(By.cssSelector("#i_cecream > div.bili-feed4 > main > div.feed2 > div > div.container.is-version8 > div:nth-child(2) > div > div > a > div > div.bili-video-card__image--wrap > picture > img")).click();Thread.sleep(3000);driver.quit();}
2、多次跳转页面
2.1 获得句柄,点击模块
//获得当前页面句柄String windowHandle = driver.getWindowHandle();driver.findElement(By.cssSelector("#s-top-left > a:nth-child(7)")).click();Thread.sleep(2000);
2.2 获取全部句柄,切换窗口
//切换页面获得全部句柄System.out.println(driver.getWindowHandles());Set<String> windowHandles = driver.getWindowHandles();for (String s : windowHandles) {if(s != windowHandle){//如果句柄不同就代表切页面了,所以要进行窗口切换driver.switchTo().window(s);}}
2.3 切换之后再次关闭当前窗口,返回主页面并查看当前所有句柄
//切换之后再次关闭当前窗口,返回主页面driver.close();//打印当前的所有句柄查看有什么System.out.println(driver.getWindowHandles());
2.4 切换回原始窗口,进行搜索,最后关闭浏览器
//切换回原始的窗口句柄driver.switchTo().window(windowHandle);//进行搜索,输入软件测试driver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");//点击搜索键driver.findElement(By.cssSelector("#su")).click();//停止两秒Thread.sleep(2000);//关闭全部页面driver.quit()
2.5 完整代码如下
//多次切换页面public void Switch() throws InterruptedException {//获得当前页面句柄String windowHandle = driver.getWindowHandle();driver.findElement(By.cssSelector("#s-top-left > a:nth-child(7)")).click();Thread.sleep(2000);//切换页面获得全部句柄System.out.println(driver.getWindowHandles());Set<String> windowHandles = driver.getWindowHandles();for (String s : windowHandles) {if(s != windowHandle){//如果句柄不同就代表切页面了,所以要进行窗口切换driver.switchTo().window(s);}}//切换之后再次关闭当前窗口,返回主页面driver.close();//打印当前的所有句柄查看有什么System.out.println(driver.getWindowHandles());//切换回原始的窗口句柄driver.switchTo().window(windowHandle);//进行搜索,输入软件测试driver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");//点击搜索键driver.findElement(By.cssSelector("#su")).click();//停止两秒Thread.sleep(2000);//关闭全部页面driver.quit();}