Jitesh Sojitra
Jitesh Sojitra

Reputation: 4043

Element present fails due to iframe issue for getting image src using Selenium WebDriver

As we know iframe can be counted using frameslist but that doesn't work for me and gives blank output although frame count gives me count as 2. I'm using Selenium WebDriver and Java.

Basically I want to get img source's data-mce-src starts with cid and dfsrc ends with @ according to below screenshot.

I tried :

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

which works fine using sIsElementPresent in selenium 1.0 but it fails in webdriver using findElement. In fact it doesn't identify iframe itself.

Expected:

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

Code:

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

Also tried:

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

enter image description here

Upvotes: 0

Views: 314

Answers (2)

Jitesh Sojitra
Jitesh Sojitra

Reputation: 4043

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

Upvotes: 0

Saurabh Gaur
Saurabh Gaur

Reputation: 23815

You should try as below :-

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

Upvotes: 1

Related Questions