当前位置: 首页 > 知识库问答 >
问题:

使用Selenium WebDriver和Java在浏览器选项卡之间切换

东方富
2023-03-14

我需要在浏览器选项卡之间切换,使用以下代码

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");

它有时只是正常工作,但有时表现出异常。有谁能建议我使用Java在一个窗口内切换选项卡的其他说明吗。

共有1个答案

宫瀚
2023-03-14

你必须在这里使用窗口句柄功能。下面是Java中的一个示例工作代码:

    String parentHandle = driver.getWindowHandle(); // get the current window handle
    System.out.println(parentHandle);               //Prints the parent window handle 
    String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window
    anchor.click();                                 //Clicking on this window
    for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle
        System.out.println(winHandle);
        driver.switchTo().window(winHandle);        // switch focus of WebDriver to the next found window handle (that's your newly opened window)              
    }
//Now your driver works on the current new handle
//Do some work here.....
//Time to go back to parent window
    driver.close();                                 // close newly opened window when done with it
    driver.switchTo().window(parentHandle);         // switch back to the original window

希望这能有所帮助!

 类似资料:
  • 问题内容: 我需要在浏览器标签之间切换,使用以下代码, 它有时仅工作正常,但有时却显示异常。任何人都可以建议我使用Java在单个窗口中切换选项卡是否还有其他说明。 问题答案: 您必须在此处使用窗口句柄功能。这是Java中的示例工作代码: 希望这可以帮助!

  • 有人能帮我解决下面代码的问题吗?我的意图是能够在浏览器中打开一个新的标签。脚本通过,但没有真正打开新选项卡

  • 将Selenium WebDriver与Java结合使用。我正在尝试自动化一个功能,其中我必须打开一个新的选项卡,在那里做一些操作,并回到以前的选项卡(父)。我用了开关手柄,但它不起作用。还有一件奇怪的事情,两个选项卡有相同的窗口句柄,因此我不能在选项卡之间切换。 然而,当我尝试使用不同的Firefox窗口时,它都能工作,但是对于tab它就不行了。 请帮帮我.我如何切换标签。或者我如何切换选项卡而

  • 我注意到一个有趣的行为:当导航模式设置为时,如果我将手机置于横向模式,它会将选项卡转换为列表,并保留片断和列表项(以前是选项卡项)之间的关联,如何根据需要而不是根据方向变化实现此结果?

  • 问题内容: 问题:用户从小程序开始长时间操作;显示带有进度条的JDialog。用户打开/切换到另一个浏览器选项卡-仍然显示JDialog(并惹恼用户)。 当用户切换到另一个选项卡时,JDialog应该被隐藏;并在用户切换回时再次显示。 注意:我看到了类似问题的问题,解决方案是添加windowActivated / deactivated监听器。它对我不起作用,因为窗口中有多个框架,其中一个框架包含