使用Selenium

时间:2016-01-17 05:55:09

标签: java selenium selenium-webdriver selenium-firefoxdriver

我正在使用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");  

3 个答案:

答案 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 enter image description here

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

enter image description here

如果要打开新标签页,则需要在启用此选项的情况下创建不同的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");