如何在iframe中通过JS获取元素?硒,Java

How to get to the element through JS in iframe? Selenium, Java

那么我们所拥有的 - 页面上有一个 iFrame,它显示了之前生成的数据的预览。我需要获取带有文本的元素,然后从中获取 CSS 值。

看看这里的DOM:

example of the page 这个元素的 xpath 看起来是正确的需要的元素(上帝保佑 Chrome DevTools!)。 但是脚本无法检测到这个元素。

我做了什么: 1 - 切换到我的元素所在的 Iframe - 成功。(根据屏幕截图,此 iframe 内不再有 iframe)。 2 - 试图找到元素 - NoSuchElementException。

可能是因为这个#document 问题而出现这样的问题?如果是这样 - 我该如何解决它并使用脚本获取所需的元素?

可能您需要等到框架加载如下。

WebDriverWait wait=new WebDriverWait(driver, 90);
driver=wait.untill(ExpectedConditions.frameToBeAvailableAndSwitchToIt("previewFrame");

WebElement element=driver.findElement(By.TagName("em"));
String fontStyle=element.getCssValue("font-sytle");
System.out.println(fontStyle);