【发布时间】:2019-09-11 10:10:23
【问题描述】:
这是我用来学习 Selenium 的书中的代码 sn-p
public class WindowHandlingTest {
WebDriver driver;
@BeforeMethod
public void setup() throws IOException {
System.setProperty("webdriver.chrome.driver",
"./src/test/resources/drivers/chromedriver");
driver = new ChromeDriver();
driver.get("http://guidebook.seleniumacademy.com/Window.html");
}
@Test
public void handleWindow() {
String firstWindow = driver.getWindowHandle();
System.out.println("First Window Handle is: " + firstWindow);
WebElement link = driver.findElement(By.linkText("Google Search"));
link.click();
String secondWindow = driver.getWindowHandle();
System.out.println("Second Window Handle is: " + secondWindow);
System.out.println("Number of Window Handles so for: "
+ driver.getWindowHandles().size());
这段代码的问题是,当打开一个新标签时,selenium 仍然认为第一个标签打开了,这使得结果绝对错误。只有当我创建所有窗口的 ArrayList 并按索引引用特定的选项卡/窗口时,代码才能按预期工作。还有其他管理浏览器选项卡/窗口的“正确”方法吗?书上的代码不正确吗?
【问题讨论】:
标签: java selenium selenium-webdriver selenium-ide