如何解决无法从硒的弹出窗口中找到元素
当前,我开始使用硒,并且在测试页上有一个弹出窗口,必须在其中填写我的电子邮件。问题是硒无法通过xpath找到元素,这给了我NoSuchElementException。
I've done a screenshot from the elment here
我已经尝试过使用普通的findElement()
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
有什么建议吗?
解决方法
弹出式广告在iframe中使用以下代码:
使用框架ID切换
driver.switchTo().frame("pf_582434");
使用帧索引切换:
driver.switchTo().frame(0);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。