1

我想id通过 Java 获取 iframe 内部的元素属性。如何在 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 内的图像 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

有谁知道可能是什么问题?

4

2 回答 2

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

已编辑

于 2013-11-08T08:29:58.353 回答
0

像任何其他元素一样WebDriver,只需使用 CSS 选择器或 XPath。

String id = driver.findElement(By.cssSelector("iframe[id=frame] body span")).getAttribute("id");

但是这个选择器取决于你在框架中的实际元素,你没有提供太多关于这个的信息。

于 2013-11-08T08:15:28.073 回答