我试图通过类名选择一个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:
<div id="cke_534_contents" class="cke_contents cke_reset" role="presentation" style="height: 75px;">
<span id="cke_586" class="cke_voice_label">Press ALT 0 for help</span>
<iframe class="cke_wysiwyg_frame cke_reset" frameborder="0" src="" style="width: 100%; height: 100%;" aria-describedby="cke_586" tabindex="0" allowtransparency="true">
<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
<body class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" contenteditable="true" spellcheck="true">
type here
</body>
</html>
</iframe>
</div>
4条答案
按热度按时间9cbw7uwe1#
通过xpath查找iFrame解决了该问题
然后返回顶部窗口:
zwghvu4y2#
无法使用类选择iFrame。请使用以下方法检查Web驱动程序文档:-
https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html
1.可以通过“名称”/“id”属性切换到iFrame。
1.您可以按帧索引进行切换。
现在你必须检查整个页面有多少iFrame存在??如果它说:3,始终使用第三个iFrame。
希望能帮上忙。
0aydgbwb3#
是的,有一个错误。。好的,你可以做一件事。。手动计数有多少iframe在页面中,如果它的第三个whre你想切换。
直接指定int值,如doc所述,
因此,您的代码可能会变成这样:-
不要忘记返回默认内容。
请让我知道这是否可行。
41ik7eoe4#
我们还可以使用定位器获取一个元素到该iframe,然后使用该元素切换到iframe。