【问题标题】:Element present fails due to iframe issue for getting image src using Selenium WebDriver由于使用 Selenium WebDriver 获取图像 src 的 iframe 问题,元素存在失败
【发布时间】:2018-08-11 23:25:51
【问题描述】:

我们知道 iframe 可以使用 frameslist 进行计数,但这对我不起作用并给出空白输出,尽管帧计数将我计数为 2。我正在使用 Selenium WebDriver 和 Java。

基本上我想根据下面的截图获取img源的data-mce-src以cid开头,dfsrc以@结尾。

我试过了:

public static final String imageAttachment="css=img[data-mce-src^='cid']&&[data-mce-src$='@']"; 

在 selenium 1.0 中使用 sIsElementPresent 可以正常工作,但在使用 findElement 的 webdriver 中失败。实际上它并不能识别 iframe 本身。

预期:

css=img[data-mce-src^='cid']&&[data-mce-src$='@'] element present?

代码:

WebElement we = null;
List <WebElement> framesList = webDriver().findElements(By.tagName("iframe"));
for (WebElement frame:framesList){
    System.out.println(frame.getText()); // returns nothing
}
int listSize = framesList.size();
webDriver().findElement(By.xpath("//iframe"));
System.out.println(listSize);

也试过了:

webDriver().switchTo().frame(webDriver().findElements(By.tagName("iframe"));
we = webDriver().findElement(By.cssSelector("html body div img"));
System.out.println(we.getAttribute("src")); // returns nothing

【问题讨论】:

    标签: selenium selenium-webdriver webdriver


    【解决方案1】:

    你应该尝试如下:-

    webDriver().switchTo().frame("Editor1_body_ifr");
    we = webDriver().findElement(By.cssSelector("body#tinymce img"));
    System.out.println(we.getAttribute("src")); 
    

    【讨论】:

    • 感谢 Saurabh。我在您的答案中添加了更多内容,因为碰巧也找到了解决方案,最后它也需要移至 defaultContent() ,因此它不会影响进一步的测试。对吗?
    • 是的,您是对的,在框架内完成所有操作后,您需要将默认内容切换为webDriver().switchTo().defaultContent();..
    【解决方案2】:
    try {
         webDriver().switchTo().frame("Editor1_body_ifr");
         we = webDriver().findElement(By.cssSelector("html body img"));
         System.out.println(we.getAttribute("src")); 
         System.out.println(we.getAttribute("data-mce-src"));
         System.out.println(we.getAttribute("dfsrc"));
    } finally {
         webDriver.switchTo().defaultContent();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2016-06-09
      • 2019-04-20
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      相关资源
      最近更新 更多