Watir предлагает простой в использовании синтаксис для работы с фреймами.
Синтаксис
browser.iframe(id: 'myiframe') // will get the reference of the iframe where we want to input details.
Чтобы понять, как работать с iframe и найти элементы внутри iframe, в этой главе мы будем работать над примером.
пример
main.html
<html> <head> <title>Testing using Watir</title> </head> <body> <iframe src = "test1.html" id = "myiframe" width = "500" height = "100"></iframe> </body> </html>
test1.html
<html> <head> <title>Testing UI using Watir</title> </head> <body> <script type = "text/javascript"> function wsentered() { console.log("inside wsentered"); var firstname = document.getElementById("firstname"); if (firstname.value != "") { document.getElementById("displayfirstname").innerHTML = "The name entered is : " + firstname.value; document.getElementById("displayfirstname").style.display = ""; } } </script> <div id = "divfirstname"> Enter First Name : <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" /> </div> <br/> <br/> <div style = "display:none;" id = "displayfirstname"></div> </body> </html>
Выход
В приведенном выше примере форма ввода определяется внутри iframe. Код Watir, который поможет нам найти его и проверить форму, приведен ниже —
Код Watir
require 'watir' b = Watir::Browser.new :chrome b.goto('http://localhost/uitesting/main.html') t = b.iframe(id: 'myiframe').text_field t.set 'Riya Kapoor' b.screenshot.save 'iframetestbefore.png' t.fire_event('onchange') b.screenshot.save 'iframetestafter.png'
Код Watir, чтобы найти iframe в приведенном здесь URL —
t = b.iframe(id: 'myiframe').text_field
Мы использовали имя тега iframe и идентификатор iframe, как показано выше.
Скриншоты приведенного выше кода показаны ниже —