【问题标题】:How to get to the element through JS in iframe? Selenium, Java如何通过iframe中的JS获取元素?硒,Java
【发布时间】:2018-01-11 18:07:37
【问题描述】:

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

看看这里的 DOM:

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

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

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

【问题讨论】:

  • 你能贴出切换到导致NoSuchElementException的框架的代码sn-p吗?
  • public String getCssValues(){ String cssValue = "font-style"; PageUtil.switchToFrame(driver, previewFrame);返回 PageUtil.getCssValue(textInPreview,cssValue); }
  • 请编辑您的问题并在其中添加任何相关代码或解释,以便格式正确,未来的读者将看到问题中的所有信息,而无需阅读所有 cmets 以获取所有详细信息.
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及必要的最短代码 重现它在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:minimal reproducible example

标签: java selenium iframe xpath nosuchelementexception


【解决方案1】:

您可能需要等到加载帧,如下所示。

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);

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多