gpt4 book ai didi

java - "switchTo"方法无法在浏览器中切换到选项卡

转载 作者:行者123 更新时间:2023-12-01 11:10:44 24 4
gpt4 key购买 nike

我正在使用下面的代码来测试窗口句柄。

新页面在新选项卡中打开,但 switchTo 命令不会切换到该页面。

public static void main(String[] args) {
Actions act = new Actions(driver);
driver.get("https://www.google.co.in");

String parentWin = driver.getWindowHandle();
act.keyDown(Keys.LEFT_CONTROL).perform();
driver.findElement(By.linkText("Images")).click();

for(String newWindow: driver.getWindowHandles()){
driver.switchTo().window(newWindow);
driver.findElement(By.id("lst-ib")).sendKeys("hello world");
driver.findElement(By.name("btnG")).click();
driver.close();
}


driver.switchTo().window(parentWin);
driver.findElement(By.linkText("Gmail")).click();


}

此代码在这里被投票为正确答案:How to handle the new window in Selenium WebDriver using Java?来自@CODEBLACK

最佳答案

我对其工作原理的理解是每个驱动程序实例都是一个浏览器,而不是一个选项卡。但是......当我查找如何执行此操作时,我看到代码示例表明您的代码应该可以工作。所以我不确定它是否曾经有效而现在不起作用,或者他们是否说选项卡但意味着新的浏览器窗口......无论哪种方式,我找到了解决方案。有两种方法可以做到这一点。

  1. 在新的浏览器窗口而不是选项卡中打开新页面。这是一个简单的修复...您只需将 CTRL 按键更改为 SHIFT 即可。

    act.keyDown(Keys.SHIFT).perform();

  2. 另一种方式我没有尝试过,但在下面的链接中有描述。它基本上涉及使用 CTRL+TAB 键盘快捷键在打开的选项卡之间移动。您将必须跟踪您所在的位置,并且根据打开的选项卡的数量,这可能会很快变得非常棘手。

http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html

我会推荐#1,因为它感觉不那么老套,但您可能要求它在选项卡中打开,并且必须使用#2。

关于java - "switchTo"方法无法在浏览器中切换到选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32422716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com