selenium2java 遇到有三个窗口用例的处理办法
2017-03-20 18:57
204 查看
本人在学习selenium2java的时候遇到一个用例,执行完竟然有三个窗口,使用handles的办法教程只写了两个窗口的解决办法,后来我把handles全都输出出来后发现其实相当于三个窗口,再进去第三个窗口的时候,多判断一下就好了,斜面分享一下自己的经验。
//登录下载精品资源 public static void downloadResources(WebDriver driver, boolean key) throws InterruptedException, AWTException { if (key) { loginWithTeacher(driver); }else{ loginWithStudent(driver); } findElementByTextAndClick(driver, "精品资源"); String homehandle = driver.getWindowHandle(); findElementByXpathAndClick(driver, "html/body/div[3]/ul/li[4]/a"); Set<String> handles = driver.getWindowHandles(); for(String handle : handles){ if (handle.equals(homehandle)==false){ driver.switchTo().window(handle); output("切换到精品资源页面了!"); Thread.sleep(2000); findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[1]/dl/dd/a[4]"); findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[2]/dl/dd/a[3]"); findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[4]/dl/dd/a[3]"); Thread.sleep(2000); String news = driver.getWindowHandle(); findElementByTextAndClick(driver, "点击下载"); Set<String> handlenews = driver.getWindowHandles(); for(String newsss : handlenews){ if(newsss.equals(news)==false && newsss.equals(homehandle) == false) { driver.switchTo().window(newsss); output("切换到资源页面了!"); findElementByXpathAndClick(driver, "html/body/div[3]/div[1]/div[2]/table/tbody/tr[3]/td[5]/a"); Thread.sleep(500); driver.switchTo().alert().accept(); driver.close(); } } for(String newsss : handlenews){ if (newsss.equals(news)) { driver.switchTo().window(newsss); output("回到精品资源页面了!"); driver.close(); } } } } for(String handle : handles){ if (handle.equals(homehandle)){ driver.switchTo().window(handle); output("回到首页了!"); Thread.sleep(2000); driver.quit(); } } }
相关文章推荐
- selenium(java)浏览器多窗口切换处理
- selenium(java)浏览器多窗口切换处理
- java selenium webdriver处理JS操作窗口滚动条
- selenium中多标签或者多窗口的处理办法
- java错误处理大集合和解决错误办法总结
- 用myeclipse中遇到tomcat jdk name错误处理的办法
- 用myeclipse中遇到tomcat jdk name错误处理的办法
- 窗口关闭 事件处理 -Java学习笔记(36)
- 上网遇到恶意网页时的现象及处理办法
- 注册 activex 遇到 0x80029c4a 的处理办法
- unix下遇到的问题及处理办法
- Java在UNIX下不能处理图形的解决办法
- java一个wsdd文件时遇到的错误的解决办法
- Java在Linux下不能处理图形的解决办法
- 架构freeradius遇到故障处理办法
- java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
- myeclipse中遇到tomcat jdk name错误处理的办法
- Java在AIX的unix环境下不能处理图形的解决办法
- QQ空间常遇到的三个问题及解决办法
- java中当finally遇到return的处理方式