当前位置: 首页 > 面试题库 >

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

东门翰
2023-03-14
问题内容

我需要在浏览器标签之间切换,使用以下代码,

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

它有时仅工作正常,但有时却显示异常。任何人都可以建议我使用Java在单个窗口中切换选项卡是否还有其他说明。


问题答案:

您必须在此处使用窗口句柄功能。这是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。我试图自动执行一项功能,在该功能中我必须打开一个新选项卡,然后在此处执行一些操作,然后返回到上一个选项卡(父项)。我使用了开关手柄,但无法正常工作。奇怪的是,两个选项卡具有相同的窗口句柄,因此我无法在两个选项卡之间切换。 但是,当我尝试使用其他Firefox窗口时,它可以工作,但是对于选项卡,它却无法工作。 请帮助我如何切换标签。或

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

  • 我有两个网站,例如: foo.example.com bar.example.com 我想发送一些消息之间的网站,如果有打开在不同的标签。 有不同的可能方式: 邮件后传 SharedWorker 本地存储 但每一个都需要相同的来源或对Window.Opener的访问... 如果顶部域相同,则有解决方案浏览器端用于选项卡之间的通信?

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