Я довольно новичок в автоматизации и watir-webdriver, так что простите меня, если я не буду звучать супер техничным.Не удается настроить iframe с помощью 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 и автоматизирующей на хроме 17
, что я попытался было: $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"}
Я также пробовал в dexing 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")
работает отлично. Извините, что так долго. Просто хотел убедиться, что я дал достаточно информации. Заранее благодарю за любую помощь.
Два вопроса. (1) Доступна ли страница, которую вы тестируете, общедоступной? Ваш код работает для меня с учетом вашего образца HTML, поэтому мне интересно, является ли это проблемой времени (т. Е. Вы пытаетесь получить доступ к форме до завершения загрузки iframe). (2) Вы имели в виду watir-webdriver 0.5.3 (последние), а не 0.3.5? –
Эй, спасибо за ответ.1) Сайт доступен по адресу http://microsites.onerecovery.com. Я не думаю, что это проблема времени, потому что, когда я запускаю код по строкам в командной строке, я до сих пор не могу настроить таргетинг на форму в iframe. 2) Я использую watir-webdriver 0.3.5, что и было, когда я начал автоматизировать, и я еще не обновился до последней версии. Я очень ценю любое понимание, которое у вас есть в этой проблеме. Благодарю. – jennarae
Ваш оригинальный код отлично работает в Firefox, поэтому я бы предположил, что это ошибка с ChromeDriver. –