将显示一个弹出窗口,要求输入联系信息。它不是 iframe、警报或基于窗口的弹出窗口。 URL 甚至没有改变。在主页上,我单击“联系我们”,然后出现一个弹出窗口,看起来像一个表单。如何将驱动程序控制切换到它并发送输入联系信息?
我们非常感谢任何帮助。
最佳答案
我不确定您是否遇到特定问题,或者只是同步问题(此示例将解决该问题):
WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10); // used for synchronization
driver.get("http://uptake.com/");
// Make sure page was loaded
WebElement contactUs = wait.until(
ExpectedConditions.elementToBeClickable(By.linkText("Contact Us")));
contactUs.click();
// Wait for Contact Us div to become visible
// (by checking that title is displayed)
wait.until(
ExpectedConditions.visibilityOfElementLocated(
By.xpath("//h2[contains(text(), 'Contact us below.')]")));
// Start filling form
driver.findElement(By.name("name")).sendKeys("John Smith");
// ... rest of the fields
driver.findElement(By.name("message")).sendKeys("Hello!");
driver.findElement(By.xpath("//input[@value='Send']")).click();
关于java - Selenium WebDriver 无法切换到弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321718/