java/selenium—如何单击主页顶部弹出的表单中的元素?
在我的自动化项目中的某一点上,我必须在成功访问页面并单击显示表单的元素后,单击作为表单一部分的元素,该元素会在主页顶部弹出(它不会像那些在某个元素上悬停时显示然后消失的菜单那样消失) 我一直在尝试其他问题的评论中建议的各种解决方案,比如使用偏移量和等待元素变得可点击,但没有一种对我有效 以下是第一个字段“Name”的当前状态代码: 编辑-工作代码(谢谢segalaj):java/selenium—如何单击主页顶部弹出的表单中的元素?,java,selenium,xpath,Java,Selenium,Xpath,在我的自动化项目中的某一点上,我必须在成功访问页面并单击显示表单的元素后,单击作为表单一部分的元素,该元素会在主页顶部弹出(它不会像那些在某个元素上悬停时显示然后消失的菜单那样消失) 我一直在尝试其他问题的评论中建议的各种解决方案,比如使用偏移量和等待元素变得可点击,但没有一种对我有效 以下是第一个字段“Name”的当前状态代码: 编辑-工作代码(谢谢segalaj): try { System.out.println("Filling in mandatory
try {
System.out.println("Filling in mandatory fields of the contact form... ");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//iframe[@id='jcemediabox-popup-iframe']")));
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='jcemediabox-popup-iframe']")));
driver.wait(pauseInSeconds);
System.out.println("Filling in name... ");
wait.until(ExpectedConditions.elementToBeClickable(By.name("form[Name]")));
driver.findElement(By.name("form[Name]")).sendKeys(contactInput[0]);
System.out.println("Filled in name");
driver.wait(shorterWait);
driver.switchTo().defaultContent();
} catch (Exception e) {
System.out.println("Could not complete actions on: contact form");
e.printStackTrace();
}
由于弹出窗口位于iframe中,您需要告诉webdriver切换到iframe:
<webdriver>.switchTo().frame(<iframe-webelement>);
.switchTo().frame();
然后您将能够访问iframe元素。完成框架后,不要忘记返回主页面 你可以找到医生
希望有帮助。弹出窗口是在iframe中吗?据我所知,是的。
<webdriver>.switchTo().frame(<iframe-webelement>);