java - 无法使用 selenium 识别 iframe

标签 java html selenium

尝试在页面中查找并切换到iframe,但显示iframe数量为0。

iframe 存在于 html 代码中。

HTML 代码:

<iframe id="walkme-native-functions" style="display: none; position: absolute;"></iframe>
<iframe id="walkme-proxy-iframe" src="about:blank" style="display: none; visibility: hidden;"></iframe>

Java 代码:

 List<WebElement> frames=chromeSelDriver.findElements(By.tagName("iframe"));
 System.out.println(frames.size());
 System.out.println(frames);
 chromeSelDriver.switchTo().frame(0);

HTML 代码:

<iframe id="walkme-native-functions" style="display: none; position: absolute;"></iframe>
<iframe id="walkme-proxy-iframe" src="about:blank" style="display: none; visibility: hidden;"></iframe>

Java代码的输出:

0
[]

最佳答案

Selenium 的编写不允许与隐藏元素交互。 其背后的想法是,如果一个人无法执行某项操作,那么 Selenium 也不能。 由于您的两个 iframe 都被隐藏,selenium 无法识别这些元素。

但是,您可以将 Javascript 与 Selenium 结合使用来与隐藏元素进行交互。

关于java - 无法使用 selenium 识别 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58389182/

相关文章:

Java : My error is a cannot find symbol in run method for Threads?

java - 如何在RFT测试脚本中获取当前浏览器

java - 插入具有唯一属性的记录的正确方法

html - 导航栏扩展的页面加载 - 已检查 "collapse in"

html - 使 Bootstrap 输入看起来像 selectize.js 组件中的 input-sm

java - Selenium 不会通过 xpath 查找值大于 99 的元素

java - Callable 接口(interface)是一个线程吗?它工作时我无法运行任何东西

html - 使用 sed 或 grep 提取 HTML 标签之间的文本

selenium - 如何以详细模式启动 Chromedriver - Selenium Eclipse

python - 在一个类中抓取一个类