Selenium WebDriver 中是否有任何方法可以让我们获取页面中的所有框架?就像我们有获取所有窗口句柄的方法一样。
driver.getWindowHandles()
Selenium WebDriver 中是否有任何方法可以让我们获取页面中的所有框架?就像我们有获取所有窗口句柄的方法一样。
driver.getWindowHandles()
这也许就是你想要的:
public void getIframe(final WebDriver driver, final String id) {
final List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
for (WebElement iframe : iframes) {
if (iframe.getAttribute("id").equals(id)) {
// TODO your stuff.
}
}
}
然而,重要的是要提醒,如果您的页面有太多这些对象,代码可能会变得有点慢,但我在使用此解决方案时在我的测试中谈论超过 100 多个。
试试这个代码:
//Assume driver is initialized properly.
List<WebElement> ele = driver.findElements(By.tagName("frame"));
System.out.println("Number of frames in a page :" + ele.size());
for(WebElement el : ele){
//Returns the Id of a frame.
System.out.println("Frame Id :" + el.getAttribute("id"));
//Returns the Name of a frame.
System.out.println("Frame name :" + el.getAttribute("name"));
}