如何在Selenium IDE中的iframe中获取输入值

时间:2019-06-21 21:34:41

标签: javascript iframe selenium-ide

我想获取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

有人可以帮我吗?谢谢

1 个答案:

答案 0 :(得分:1)

execute Script内,您需要设置正确的iframe 。也就是说,您需要执行与select Frame命令相同的操作,但是要使用Javascript。否则“ getElementById ..”找不到ID。

我想不是常规的web scraping命令会更容易使用它,而不是使用“ document.getElementById(” iFrame1“)。contentWindow.d ....”?