Selenium Webdriver 无法获取 Modal 中的元素

标签 selenium selenium-webdriver modal-dialog

我正在编写一个 Selenium Webdriver 脚本,该脚本应该单击链接,然后弹出此模态窗口。

Modal Window on the page

当我尝试访问卡号字段(//input[@id=pan])时,出现“找不到此类元素”异常org.openqa.selenium.NoSuchElementException:没有此类元素:无法定位元素: {“方法”:“id”,“选择器”:“平移”}

Input control I want to get hold of

这是我尝试过但没有成功的代码:

WebElement modal = driver.findElement(By.xpath("//div[@class='ute-pay-now-modalContent']"));
driver.switchTo().frame(modal);
WebElement el =  driver.findElement(By.xpath("//input[@id='pan']"));

也尝试过这个:

WebElement modal = driver.findElement(By.className("ute-pay-now-modalContent"));
driver.switchTo().frame(modal);
WebElement el =  driver.findElement(By.xpath("//input[@id='pan']"));

也尝试过这个:

WebDriverWait block = new WebDriverWait(driver,10);
WebElement modal = block.until(ExpectedConditions.visibilityOfElementLocated(By.className("ute-pay-now-modalContent")));
WebElement pan;
pan    = modal.findElement(By.id("pan"));

也尝试过这个:

driver.switchTo().defaultContent();

也尝试过这个:

driver.switchTo().activeElement();

有人可以帮我建议如何解决这个问题吗?

最佳答案

看起来<div class="ute-pay-‌​now-modalContent">包含iframe#sema需要 input field 。尝试下面的代码并让我知道结果:

WebDriverWait block = new WebDriverWait(driver,10);
block.until(ExpectedConditions.visibilityOfElementLocated(By.className("ute-pay-now-modalContent")));
driver.switchTo().frame("sema");
WebElement pan;
pan = modal.findElement(By.id("pan"));

关于Selenium Webdriver 无法获取 Modal 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882523/

相关文章:

java - 线程 "main"org.openqa.selenium.WebDriverException : unknown error: cannot get automation extension 中出现异常

jquery - Selenium Web Driver (Firefox) 是否能够读取 AngularJS ng-model 注入(inject)的初始值?

java - 使用带有 Java 的 Selenium WebDriver 在新页面上查找 WebElement

python - 我如何从 django 中的 mysql 检索数据并以模式显示,其中我也可以更新它?

java - 使用 selenium WebDriver 在网页中执行 javascript

selenium - Sikuli,当我从开发机器运行它时,在 Jenkins : Allow the browser to be launched in the foreground, 上进行 Selenium 测试?

python - Selenium 与 Python : how to increase resolution for full screen screenshot?

Python-Selenium 不会等待我的网站刷新?

javascript - 将值从 Controller 传递到模态页面

mfc - 从调用弹出对话框到用户可以看到对话框,如何显示等待光标?