![](/img/trans.png)
[英]Switch between browser tabs using Selenium WebDriver with Java
[英]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.