7

いくつかのWindows7テストワークステーションでのSeleniumWebDriverの使用。

ButtonのFireBugHTMLは以下のとおりです。

<input type="submit" style="border-color:Black;border-width:1px;border-style:solid;
font-family:tahoma,arial;font-size:0.7em;" id="UserPassword1_LoginButton" 
onclick="javascript:WebForm_DoPostBackWithOptions(new  WebForm_PostBackOptions(&quot;UserPassword1$LoginButton&quot;, 
&quot;&quot;, true, &quot;UserPassword1&quot;, &quot;&quot;, false, false))" value="Log      In" name="UserPassword1$LoginButton">

Selenium C#コードのスニペットは以下のとおりです。

try
        {
            // Click on the button identified by Id
            IWebElement query = Driver.FindElement(By.Id(strControl));
            query.Click();
        }

一部のWindowsテストワークステーションでは、ボタンクリック方式で問題なく動作します。他のWindows7テストワークステーションでは、ボタンのクリックはボタンを押しません。ボタンは強調表示されるだけです。

同様の問題が発生し、2つ含める必要がある場合もあります。

query.Click();

ボタンを押すためのコマンドを続けて表示します。

私たちは環境間で何が違うのかを理解しようと努めてきましたが、解決策を考え出すことはできません。

この問題のトラブルシューティング方法に関するアイデア、または誰かがこの問題の解決策を持っているかどうか。

ありがとう

ジョー

4

1 に答える 1

22

問題が発生しているブラウザについてはまだ説明していませんが、私の精神的なデバッグ能力を使用して、おそらくInternetExplorerについて話していると推測します。IEドライバーには既知の課題があります。

一連の課題は、ブラウザーのズームレベルを100%に設定する必要があることです。そうしないと、IEドライバーが適切にクリックするための座標を計算できません。これは、クリックが1つのマシンで機能するが別のマシンでは機能しない場合によくあることであり、プロジェクトwikiに文書化されています。

別のクラスの問題は、特にウィンドウフォーカスを扱います。1つの代替方法は、IEドライバーに対してシミュレートされたイベントのみを使用することです。このアプローチには独自の落とし穴がありますが、状況によってはうまくいく可能性があります。C#を使用しているとおっしゃっていたので、ネイティブイベントを無効にする.NETバインディングのコードを次に示します。

InternetExplorerOptions options = new InternetExplorerOptions();
options.EnableNativeEvents = false;
IWebDriver driver = new InternetExplorerDriver(options);
于 2012-08-27T19:48:28.937 に答える