我想获取iframe内输入的文本值。代码如下:
<iframe class="ifclass" id="iFrame1" src="https://abc" name="iFrame1" frameborder="no"/>
<html somedata="2" class="main">
<head>
</head>
<body>
<div id="homePage" _type="page">
<div class="class1">
<div class="class2">
<input type="text" name="ID_1" class="class2_1" value="" id="ID_1" readonly="true" placeholder="">
</div>
</div>
</div>
</body>
</html>
</iframe>
当我在Chrome或Firefox的开发人员工具控制台中运行以下javascript代码时,该值会正确打印
document.getElementById("iFrame1").contentWindow.document.getElementById("ID_1").value;
但是当我在Selenium IDE中运行时,出现以下错误:
command: executeScript
target: var x = document.getElementById("iFrame1").contentWindow.document.getElementById("ID_1").value; return x;
value: var1
executeScript on
var x = document.getElementById("iFrame1").contentWindow.document.getElementById("ID_1").value;
return x;
with value wc Failed:
Cannot read property 'contentWindow' of null
有人可以帮我吗?谢谢
答案 0 :(得分:1)
在execute Script内,您需要设置正确的iframe 。也就是说,您需要执行与select Frame命令相同的操作,但是要使用Javascript。否则“ getElementById ..”找不到ID。
我想不是常规的web scraping命令会更容易使用它,而不是使用“ document.getElementById(” iFrame1“)。contentWindow.d ....”?