gpt4 book ai didi

java - 如何使用 Selenium Webdriver 在同一窗口中打开的多个选项卡(超过 2 个)之间切换

转载 作者:行者123 更新时间:2023-11-29 03:07:04 25 4
gpt4 key购买 nike

我正在学习 Selenium-Webdriver 等以练习在一种情况下工作,但我卡在了第 3 步。场景如下:

  1. 打开 google 主页并执行一些搜索,例如搜索“WebDriver”一词。
  2. 在同一窗口的新标签页中打开前两个链接。
  3. 导航到第二个和第三个选项卡并获取他们的标题
  4. 关闭标签并切换回 Google 结果标签。

到目前为止,我可以打开谷歌主页,搜索“WebDriver”这个词并打开前两个链接,但现在我无法切换到第二个和第三个选项卡并关闭它们。到目前为止我的代码是:

    String originalHandle = driver.getWindowHandle();
System.out.println("Before switching title is:" +driver.getTitle());
String selectLinkOpeninNewTab = Keys.chord(Keys.COMMAND,Keys.ENTER);
WebElement link1 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[1]/div/h3/a"));
link1.sendKeys(selectLinkOpeninNewTab);
WebElement link2 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[2]/div/h3/a"));
link2.sendKeys(selectLinkOpeninNewTab);

Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();
int i = 0;
while(i1.hasNext())
{
i++;
String childwindow = i1.next();

if(!originalHandle.equalsIgnoreCase(childwindow))
{
driver.switchTo().window(childwindow);
Thread.sleep(10000);
System.out.println("After switching title of new Tab "+i+ " title is " +driver.getTitle());
driver.close();
}
}

driver.switchTo().window(originalHandle);
System.out.println("Original window tab title is" +driver.getTitle() );

我不确定哪里出了问题以及如何解决。 :(

最佳答案

可能为时已晚,但希望这对您有所帮助:

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)
}

关于java - 如何使用 Selenium Webdriver 在同一窗口中打开的多个选项卡(超过 2 个)之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629610/

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