生成iframe
的HTML代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<div style="padding-top:10px;">
<a href="https://twitter.com/url" class="twitter-follow-button" data-show-count="false" data-size="large" data-show-screen-name="false">Follow @url</a>
<script>!function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + '://platform.twitter.com/widgets.js';
fjs.parentNode.insertBefore(js, fjs);
}
}(document, 'script', 'twitter-wjs');</script>
</div>
</body>
</html>
如果我通过查找iframe
中的所有"a"标签来找到此元素,则会出现过时的元素引用异常。如果我切换到iframe
,那么我不会得到异常。
> Selenium只与当前帧中的元素交互。在切换到子帧之前,无法与子帧中的任何元素进行交互。
这与切换到同一窗口中的另一个窗口或另一个选项卡的行为一致,因为您实际上具有另一个与原始 HTML DOM 不同的 HTML DOM。
来自W3Schools的iframe的定义:iframe用于显示网页中的网页。
内嵌框架语法
添加 iframe 的语法为:
<iframe src="URL"></iframe>
例
<iframe src="demo_iframe.htm" width="200" height="200"></iframe>