私はオートメーションとwatir-webdriverにはかなり新しいので、私はスーパーハイテクを聞かないと私を許します。watir-webdriverでiframeをターゲティングできません - バグですか?
ウェブサイトにログインしようとしていますが、ログインフォームは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">
私が試した私がワチール-webdriverを0.3.5を使用して
クロム17に自動化しています方法によってだった: $b.frame(:id => "login_iframe").form(:class => "login_form").text_field(:name => "email").set("username")
たI思考はうまくいくだろうが、私のコマンドラインでは、私はちょうどエラーを取得する:Watir::Exception::UnknownObjectException: unable to locate element, using {:class=>"login_form", :tag_name=>"form"}
私も試した最初のiframeではなく、2番目のiframeにあることを確認するためにiframeをデクシングしますが、まだ動作しませんでした。
私は、コマンドラインで $b.frame(:id => "login_iframe").exists?
を行うと、私は true
を取得するが、私は、コマンドラインで $b.frame(:id => "login_iframe").form(:class => "login_form").exists?
を行うとき、私は false
を得る事は、我々はその誰かができる別のページを持っているということです同じウェブサイトにログインするのに使用します。そのページとこのページとの唯一の違いは、このページに2番目のiframeがあるのに対し、もう1つのページにはログインiframeとコードのみがあることです。 $b.frame(:id => "login_iframe").form(:class => "login_form").text_field(:name => "email").set("username")
は問題なく機能します。 すみません、申し訳ありません。ちょうど私が十分な情報を与えたことを確認したかったのです。助けを前にありがとう。
2つの質問。 (1)あなたがテストしているページは一般に公開されていますか?あなたのHTMLサンプルを与えられた私のためのコードが動作するので、タイミングの問題(iframeがロード完了する前に、フォームにアクセスしようとしている)かどうか疑問に思っています。 (2)0.3.5ではなく、watir-webdriver 0.5.3(最新)を意味しましたか? –
お返事ありがとうございます。1)サイトはhttp://microsites.onerecovery.comからアクセス可能です。コマンドラインでコードを1行ずつ実行すると、iframe内のフォームをまだターゲットできないため、タイミングの問題はありません。 2)私は、自動化を開始したときに使用していたwatir-webdriver 0.3.5を使用していますが、まだ最新バージョンにアップグレードしていません。私は本当にあなたが問題に抱いている洞察に感謝します。ありがとう。 – jennarae
元のコードはFirefoxでうまく動作するので、ChromeDriverのバグだと思います。 –