java - WebDriver 切换到点击按钮后打开的浏览器

标签 java selenium-webdriver

将 Selenium Webdriver 与 JAVA 结合使用,我正在尝试自动化一项功能,我必须打开一个新选项卡才能在那里执行一些操作,然后返回到上一个选项卡(父亲)。

他丢失了 session 并出现错误。

//当我单击此处时,它会打开模式

driver.findElement(By.name("btnSimulateDK")).click();

我尝试过这种方式,如果我在此页面上输入登录名和密码错误,它可能已经在当前 session 中打开并显示我可以执行的 Activity 。

String winHandleBefore = driver.getWindowHandle();
            driver.findElement(By.name("btnSimulateDK")).click();

                        for(String winHandle : driver.getWindowHandles()){
                           if (!winHandle.equals(winHandleBefore))      
                    driver.switchTo().window(winHandle);

                      if(driver.getTitle().equals("Title of target window")){
                            //perform operation on target window
                           }
                      }
                        driver.switchTo().window(winHandleBefore);


     }

Java Selenium

最佳答案

driver.getWindowHandles() 不保证任何顺序,它还包括当前窗口(父窗口)。

所以不仅仅是切换到窗口

您需要检查 winHandle 是否不等于 winHandleBefore

如果是这样,则只执行 switchTo()

此外,最好确保您到达正确的页面。

喜欢

  for(String winHandle : driver.getWindowHandles()){
       if (!winHandle.equals(winHandleBefore))      
          driver.switchTo().window(winHandle);

       if(driver.getTitle().equals("Title of target window")){
        //perform operation on target window
       }
  }

关于java - WebDriver 切换到点击按钮后打开的浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194226/

相关文章:

java - 禁用时 Java 断言的性能拖累

java - 将 Xml 请求转换为 Spring Boot 对象

java - 使用空对象访问静态方法

javascript - 无法在 Selenium Webdriver 中使用 send_keys 上传文件

selenium - 如何通过 Java 中的 Selenium/Webdriver 单击复选框列表中的复选框?

java - 无法访问类的属性

Java 套接字编程

selenium-webdriver - 如何使用specflow+selenium webdriver+mstest做多浏览器测试?

javascript - Node 命令不执行星号路径

java - Selenium Webdriver 和 Selenium Ghostdriver 有什么区别?