gpt4 book ai didi

Selenium 网络驱动程序 : Open new tab instead of a new window

转载 作者:行者123 更新时间:2023-12-04 00:53:06 25 4
gpt4 key购买 nike

我正在使用 Selenium WebDriver。每个链接都在新的浏览器窗口中打开。对我来说不方便。如何更改它以使其仅在新选项卡中打开?

最佳答案

Selenium 现在能够切换标签页。下面的代码 1:适用于 Firefox,代码 2:适用于 IE 和 chrome 通过使用 Robot 类我们可以做到,并且控件不会自动移动到当前选项卡,因此我们需要使用窗口句柄方法切换到当前选项卡。下面给出的代码将运行良好,当我们运行单个脚本但作为套件运行时,您可能会感到执行键盘事件的痛苦。为了避免这种情况,我们必须通过在 selenium-Java 中使用 javascript 执行器使用用户定义的 javascript 方法来处理其他可能性。

我们可以通过识别为我们打开的每个窗口分配的名称来在窗口和选项卡之间切换,名称将以字母数字字符显示。

    ***Code 1***
//First tab(default tab)
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();

//second tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("https://yahoo.com");

//third tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("http://www.google.com");

//move to very first tab.
driver.findElement(By.cssSelector("body"))
.sendKeys(Keys.CONTROL + "\t");

// To close the current tab.
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");
**code 2**
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();


Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);

Set<String> handles = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handles);
String newTab = handlesList.get(handlesList.size() - 1);

// switch to new tab
driver.switchTo().window(newTab);
driver.get("http://www.yahoo.com");

关于 Selenium 网络驱动程序 : Open new tab instead of a new window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358316/

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