Как получить значение ввода в iframe в Selenium IDE - PullRequest
0 голосов
/ 22 июня 2019

Я хочу получить текстовое значение для ввода, которое находится внутри 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>

Когда я запускаю следующий код javascript в Консоли инструментов разработчика Chrome или Firefox, значение выводится правильно

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 Ответ

1 голос
/ 22 июня 2019

Внутри Выполните скрипт , вам нужно установить правильный фрейм .То есть вам нужно сделать то же самое, что делает команда select Frame , но с Javascript.В противном случае "getElementById .." не может найти идентификатор.

Вместо использования "document.getElementById (" iFrame1 "). ContentWindow.d ...." Я думаю, это будет проще обычного web-scraping команды?

...