由于使用Selenium WebDriver获取图像src的iframe问题,元素存在失败

时间:2016-08-30 13:57:32

标签: selenium selenium-webdriver webdriver

正如我们所知,iframe可以使用frameslist计算,但这对我不起作用并给出空白输出,尽管帧数计算为2.我使用Selenium WebDriver和Java。

基本上我想得到img source的数据-mce-src以cid开头,而dfsrc以@结尾,根据下面的截图。

我试过了:

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

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

预期:

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

也尝试过:

import datetime

d = datetime.datetime.strptime("11/2/1998", "%d/%m/%Y")
print d.strftime("%d%m%y")

enter image description here

2 个答案:

答案 0 :(得分:1)

你应该尝试如下: -

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

答案 1 :(得分:0)

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