繁体   English   中英

使用 Selenium 在 Mozilla 中的选项卡之间切换

[英]Switch between tabs in Mozilla using Selenium

我正在使用 Selenium 和 Java,并且我正在使用此代码在 Mozilla 的选项卡之间切换,但它正在打开一个新的 window 而不是新的选项卡。 如何解决这个问题,或者是否有另一种方法可以在选项卡之间切换?

WebDriver shiva=new FirefoxDriver();
shiva.manage().window().maximize();
shiva.get("http://www.naukri.com/");
Thread.sleep(3000);
shiva.findElement(By.xpath("/html/body/div[1]/div/ul[1]/li[2]/a")).click(); 
shiva.findElement(By.xpath("/html/body/div[1]/div/ul[1]/li[1]/a")).sendKeys(Keys.CONTROL +"\t");  

尝试使用以下代码:

ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
webDriver.switchTo().window(tabs.get(1)); // id of the tab

您的代码应位于下面,用于在选项卡之间进行切换:基于pageTitle声明相关的选项卡(我猜)

shiva.findElement(By.xpath("/html/body/div[1]/div/ul[1]/li[1]/a")).sendKeys(Keys.CONTROL + Keys.PAGE_DOWN);

如果您希望在Windows之间切换,请使用

driver.switchto().window(windowhandle);

我也想知道您如何打开多个标签?

使用firefox版本80.0以上

我认为这是一个错误,它已在 firefox 80.0 中解决

我也有同样的问题(当时使用 firefox 版本 - 78.0)但是一旦我将版本更改为 80 或更高版本,它就可以完美运行

在普通的Firefox窗口中,在新选项卡中会打开一个新窗口,如果您转到settings --> General --> Tabs ,则会看到一个Open new window in new tab instead 在此处输入图片说明

但是,当Selenium Webdriver启动firefox配置文件时,默认情况下未选中此选项,因此它将在新窗口而不是新选项卡中打开。

在此处输入图片说明

如果要打开新选项卡,则需要在启用此选项的情况下创建另一个firefox profile ,然后才能启动创建的配置文件

您可以通过另一种方式切换到其他选项卡。

Set<String> listOfTabs = driver.getWindowHandles();
// This code will return a set with all the window ids
// Then you can switch on any of the window.
driver.switchTo.window("String Id of window");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM