美文网首页
迁移资料:selenium打开新窗口并截屏

迁移资料:selenium打开新窗口并截屏

作者: 天雨流芳hodo | 来源:发表于2019-08-19 08:59 被阅读0次

    在使用selenium进行官网注册登录的过程中,需要切换到新窗口打开邮箱获取验证码,网上查找的资料大多是在当前页面点击按钮或者链接时,浏览器自动打开新的窗口,在此情况下,selenium必须切换到新的窗口下的作用域,才能继续对新的窗口内的元素进行操作。但在注册时,没有链接支持打开登录邮箱链接,这就需要强制打开一个新页签,可直接调用javascript脚本的方式,执行window.open()方法在一个新窗口打开这个登录邮箱链接。

    JavascriptExecutor executor = (JavascriptExecutor) driver;
    executor.executeScript(“window.open(‘https://exmail.qq.com/login‘)”);
    

    打开邮箱页面后,再切换到新的窗口下的作用域

    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());//切换到新窗口
    }
    

    对该页面操作时,还可以将获取到的验证码保留图像,以便后期排查问题或者验证结果时使用,这个时候截屏就显得尤为重要。

    File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(screenshot,new File(“D:\screenshots\screenshots1.jpg”));
    

    这样就将页面保存到了D:\screenshots下,命名为screenshots1.jpg了。
    对当前页面执行操作获取到激活码后,需要返回到注册页面输入激活码,可调用
    driver.switchTo().window(currentWindow);回到原来页面,这样就完成自动注册流程了。

    相关文章

      网友评论

          本文标题:迁移资料:selenium打开新窗口并截屏

          本文链接:https://www.haomeiwen.com/subject/zeoajctx.html