硒不支持选项卡(如2013年6月,硒2.33.0),总是打开新窗口代替。如果你的测试打开一个新标签,祝你好运。
这就是说,如果它正确地打开一个新窗口,使用Select Window
。
Select Window | url=https://twitter.com/expectedPage
我工作的webdriver(2.33.0)代码Java,希望这将有助于一点点。你所描述的问题是我的机器人知识开始脱落的地方。
@Test
public void targetBlankLinkTest() {
// load the website and make sure only one window is opened
driver.get(file("TargetBlankLinkTest.html"));
assertEquals(1, driver.getWindowHandles().size());
// click the link and assert that a new window has been opened
driver.findElement(By.linkText("Follow us on Twitter!")).click();
Set<String> windowHandles = driver.getWindowHandles();
assertEquals(2, windowHandles.size());
// switch to the new window and do whatever you like
// (Java doesn't have Switch Window functionality that can select by URL.
// I could write it, but have been using this trick instead)
for (String handle : windowHandles) {
if (handle != driver.getWindowHandle()) {
driver.switchTo().window(handle);
}
}
assertThat(driver.getCurrentUrl(), containsString("twitter.com"));
}
谢谢,Slanec。但是,是否有任何方法至少验证新的浏览器选项卡是否已打开? – Dave
@Dave您可以得到的最接近的是['Get Window Identifiers'](http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Get%20Window%20Identifiers),它将在返回一个更多的值之后窗户已被打开。为此,我始终使用它的Java对象。 –
...或者简单地做'选择窗口'方法并验证它的内容('标题应该'),如果失败了,它还没有被打开。 –