Я довольно новичок в области автоматизации и watir-webdriver, так что простите меня, если я не выгляжу супер технично.
Я пытаюсь войти на веб-сайт, и форма входа находится внутри iframe.На той же странице есть еще один iframe, содержащий изображение.
Это html:
<body>
<div class="topbar">
<div class="topbarcenter">
<ul>
<li id="logo" class="logo">
<div id="provider_logo">
<iframe id="logo_iframe" width="192px" height="128px" frameborder="0" src="http://social.onerecovery.com/modules/iframes/html/provider_logo.html?prov=microsites" onload="this.style.visibility = "visible";" style="visibility: visible;" allowtransparency="true">
</div>
</li>
<li class="login">
<iframe id="login_iframe" width="550px" height="70px" frameborder="0" src="http://social.onerecovery.com/modules/iframes/html/login.html" onload="this.style.visibility = "visible";" style="visibility: visible;" allowtransparency="true">
<html>
<head>
<body>
<div class="login_container">
<div id="login_div">
<form class="login_form" action="#" method="post">
<input type="text" maxlength="100" placeholder="Email Address..." class="email_input processed" name="email">
, если я использую watir-webdriver 0.3.5 и автоматизирую работу на Chrome17
я пытался: $b.frame(:id => "login_iframe").form(:class => "login_form").text_field(:name => "email").set("username")
, который, как я думал, будет работать, но в командной строке я просто получаю сообщение об ошибке: Watir::Exception::UnknownObjectException: unable to locate element, using {:class=>"login_form", :tag_name=>"form"}
Я также пытался индексироватьiframe, чтобы убедиться, что я был во втором iframe, а не в первом, но он все еще не работал.
Когда я делаю $b.frame(:id => "login_iframe").exists?
в командной строке, я получаю true
но когда я делаю $b.frame(:id => "login_iframe").form(:class => "login_form").exists?
в командной строке, я получаю false
Дело в том, что у нас есть другая страница, которую кто-то может использовать для входа на тот же сайт, и единственное отличие между этой страницей и этой страницейв том, что на этой странице есть второй iframe, тогда как на другой странице есть только логин iframe и код $b.frame(:id => "login_iframe").form(:class => "login_form").text_field(:name => "email").set("username")
работает отлично.Извините, что так долго.Просто хотел убедиться, что я дал достаточно информации.Заранее спасибо за любую помощь.