1

CI(ジェンキンス)サーバーで実行されているハブを使用してセレングリッドをセットアップしています。ジェンキンスからプロジェクトをビルドして実行するたびに、実行に失敗します:

WebElement inputElement = driver.findElement(By.xpath("//a[contains(@href,\"/Case/Add")]"));

inputElement.sendKeys(Keys.ENTER);

というか、セレンはそれが行われたと考え、次のコマンドに進みます。つまりselenium.select("id=LifeOffice", "label=AMP");

ノードはそれぞれ異なるブラウザを実行する仮想マシンであり、この問題はスクリプトが IE 8 ブラウザで実行されている場合にのみ発生します。IDE からスクリプトを実行すると問題ありません。

使用click ();し てみ((JavascriptExecutor)driver).executeScript("arguments[0].fireEvent('onclick');",inputElement);ましたが、まだ同じ問題があります...

4

1 に答える 1

3

これは奇妙に聞こえるかもしれませんが、sendkeys コマンドの直後のページを見てみてください。要素がビューポートのすぐ外側または内側にあり、境界線にほとんど触れている場合、これはあなたに起こった可能性があります:

ブラウザのスクロールバー/ステータスバー/それを覆うページの一部の後ろに隠されているため、要素はフォーカスされませんでした。通常、IE は要素をビューポートにスクロールしてフォーカスしますが、まれなケースではそうならないことがあります。そして、focus(またはクリックなど)呼び出しは、ステータスバー/スクロールバー/空白のページで呼び出されます。

回避策はありますか?私が知っているのは次の 2 つだけです。

  • コンピューターの解像度/ウィンドウ サイズ/IE レイアウトを変更します (フルスクリーンにするか、ツールバーを無効にするなど)。
  • 解像度やウィンドウ サイズなどを決して変更しないようにし、これらのエッジ ケースでは純粋な JavaScript を使用してください。

    ((JavascriptExecutor)driver).executeScript("arguments[0].click()", inputElement);
    
于 2012-07-12T07:47:46.793 に答える