我正在使用Selenium Java WebDriver来自动化基于Vaadin的Web应用程序。当我导航到一个页面并单击一个按钮时,它打开了另一个小窗口,它看起来不像是弹出窗口。似乎子窗口动态添加到主html。
有没有人知道如何在Selenium中识别Vaadin元素?
答案 0 :(得分:1)
尝试
driver.findElement(By.className("v-window"))
整个窗口或
driver.findElement(By.className("v-window-contents"))
用于窗口内容。
答案 1 :(得分:0)
创建测试时,请确保在浏览器打开后运行此测试。有时测试开始,但浏览器没有打开。我将Thread.sleep(1000);
放在@Before
课程中,以确保Chrome已打开。
@Before
public void openBrowser() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "chromedriver");
driver = new ChromeDriver();
driver.get("http://localhost:8000");
Thread.sleep(1000);
}
然后
@Test
public void testLoginFormExists() {
WebElement login = driver.findElement(By.id("username"));
WebElement password = driver.findElement(By.id("password"));
...
}
甚至更好,请查看以下答案:https://stackoverflow.com/a/9430377/1168786