无法在selenium webdriver中选择iframe
我试图通过类名选择一个Iframe
,但它不起作用,我正在尝试使用tagName
,但是当我尝试在Iframe
的元素内输入时我不能,请你帮我这里是我的代码:
webDriver driver.switchTo().frame( driver.findElement( By.className( "cke_wysiwyg_frame cke_reset" ) ) ); driver.findElement( By.xpath( "//body[contains(text(),'type here')]" ) ).sendKeys( "Testing" );
这是我网页上的HTML:
Press ALT 0 for help type here
通过xpath找到iFrame解决了这个问题
driver.switchTo().defaultContent(); driver.switchTo().frame( driver.findElement( By.xpath( iframeXpath ) ) );
然后返回顶部窗口:
driver.switchTo().defaultContent();
你不能使用class选择一个iFrame。使用以下方法检查webdriver文档: –
https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html
-
您可以通过“名称”/“ID”属性切换到iFrame。
driver.switchTo().frame("frame1");
-
您可以按帧索引切换。
driver.switchTo().frame(driver.findElements(By.tagName("iframe").get(0));
现在你必须在整个页面检查有多少iFrame存在? 如果它说:3,总是使用第3个iFrame。
driver.switchTo().frame(driver.findElements(By.tagName("iframe").get(3));
我希望它有所帮助。
是的,有一个错误..哦,你可以做一件事……手动计算页面中有多少iframe,如果你想要切换它的第三个iframe。
直接指定int值,如doc所说,
driver.switchTo().frame(index)
所以你的代码可以变成这样: –
driver.switchTo().frame(3);
并且不要忘记回到默认内容。
driver.switchTo().defaultContent();
如果有效,请告诉我。