我有
<div class="ap-content" id="office-addon">
<div class="ap-iframe-container iframe-init" id="office-addon__5e83ed1">
<iframe id="office-addon__5e83ed1">
<!-- As it appears in the dev console: -->
#document
<!DOCTYPE html>
<html>
<head></head>
<body>
<div id="addon"></div>
</body>
</html>
</iframe>
<div>
<div>
我想用夜视仪来访问它:
browser
.waitForElementPresent('#office-addon', 20000);
.frame('#office-addon iframe')
.waitForElementPresent('#addon', 1000)
.end();
但它超时等待#addon,尽管#addon在浏览器中。如何编写frame()参数? iframe ID会随着每个页面构建而变化。
答案 0 :(得分:1)
如果你想通过id选择它,你可能应该尝试使用选择器启动,如:
alpha='auto'
如果它始终是第n个iframe,则可以在
中编入索引.frame("iframe[id^='office-addon']")
答案 1 :(得分:1)
解决方案如下:
browser.getAttribute('#office-addon iframe', 'id', id => {
browser
.frame(id.value)
...
});
它没有直接起作用。
答案 2 :(得分:-1)
iframe是显示其他页面的元素,除非您的浏览器不支持iframe,否则它不会呈现其中的任何html。所以带有id #addon的div永远不会被渲染。