【发布时间】:2020-08-19 16:47:37
【问题描述】:
目前我开始使用 selenium,在测试页面上有一个弹出窗口,我必须在其中填写我的电子邮件。问题是 selenium 无法通过 xpath 找到元素,它给了我 NoSuchElementException。
I've done a screenshot from the elment here
我已经用普通的 findElement() 尝试了 i
driver.get("https://phptravels.com/demo/");
driver.findElement(By.xpath("//*[@id=\"Main\"]/section[1]/div/div/div[2]/div/div[1]/a")).click();
Thread.sleep(3000);
driver.findElement(By.xpath("//*[@id=\"Main\"]/div/div[2]/table/tbody/tr[17]/td[1]/span[2]/a")).click();
Thread.sleep(20000);
driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[1]/div[2]/div/div/form/div[1]/div/input")).sendKeys("test@mail.com");
还有 driver.getWindowHandles() 但这里窗口处理程序的大小一直是 1
driver.get("https://phptravels.com/demo/");
driver.findElement(By.xpath("//*[@id=\"Main\"]/section[1]/div/div/div[2]/div/div[1]/a")).click();
Thread.sleep(3000);
driver.findElement(By.xpath("//*[@id=\"Main\"]/div/div[2]/table/tbody/tr[17]/td[1]/span[2]/a")).click();
Thread.sleep(20000);
String parentWindowHandler = driver.getWindowHandle(); // Store your parent window
String subWindowHandler = null;
Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window
driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[1]/div[2]/div/div/form/div[1]/div/input")).sendKeys("yoyoyo");
driver.switchTo().window(parentWindowHandler); // switch back to parent window
有什么建议吗?
【问题讨论】:
-
让我试试,请提供网址
-
确定phptravels.com/demo -> 点击绿色按钮定价 -> 向下滚动并点击选择。然后弹出窗口将打开
标签: selenium selenium-webdriver