我正在使用Selenium和Java,我使用此代码在Mozilla中的标签之间切换,但它打开了一个新窗口而不是新标签。如何解决这个问题,还是有另一种方法可以在标签之间切换?
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");
答案 0 :(得分:0)
尝试使用此代码:
ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());
webDriver.switchTo().window(tabs.get(1)); // id of the tab
答案 1 :(得分:0)
您的代码应在下方切换选项卡:根据pageTitle断言相关选项卡(我猜)
driver.switchto().window(windowhandle);
如果您希望在窗口之间切换,请使用
SimpleCursorAdapter
另外我想知道你怎么能打开多个标签?
答案 2 :(得分:-1)
在普通的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");