我希望通过Java获取iframe内部的元素id
属性。如何在Java中访问iframe中的元素?
driver.findElement(By.xpath("//div[4]/div/div/div[3]/div[2]/div/div/iframe")).findElement(By.id("output-img")).getAttribute("src");
这是我用来获取iframe内部的image src属性的代码。当我执行此代码时,它会抛出一个异常
Unable to locate element: {"method":"id","selector":"output-img"}
Command duration or timeout: 5.06 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
有谁知道可能是什么问题?
答案 0 :(得分:2)
示例:
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(id)); //iframe ID is String
WebElement iframe = driver.findElement(By.xpath("//div[4]/div/div/div[3]/div[2]/div/div/iframe"));
driver.switchTo().frame(iframe);
String attribute = driver.findElement(By.id("output-img")).getAttribute("src");
driver.switchTo().defaultContent();
<强> EDITED 强>
答案 1 :(得分:0)
与WebDriver
中的任何其他元素一样,只需使用CSS选择器或XPath。
String id = driver.findElement(By.cssSelector("iframe[id=frame] body span")).getAttribute("id");
但是这个选择器取决于你框架中的实际元素,你没有提供太多关于此的信息。