0


Selenium スタンドアロン サーバーを使用しています - 2.25.0
IE - 8.0.6001.18702 (32 ビット)
IEDriverServer - 2.25.1.0
Java - SDK6
OS - Win Xp 32 ビット

コード:

    System.setProperty("webdriver.ie.driver", "Path to IEDriverServer.exe");
    driver.get("http://www.naukri.com/");
     // Used Wait before entering text.
    driver.findElement(By.id("qp")).clear();
    driver.findElement(By.id("qp")).sendKeys("java j2ee");
    driver.findElement(By.id("ql")).clear();
    driver.findElement(By.id("ql")).sendKeys("chennai");
    driver.findElement(By.linkText("Create a new Job Alert")).click();

上記のコードを使用して IE8 を起動しました。IE でアプリケーションを正常に起動して開くことができました。しかし、その後、開いたWebページでアクションを実行できません。

  1. 4つすべてに対してIEプロテクトモード設定を高レベルにしました。
  2. IEDriverServer.exe のパスを設定します
  3. ブラウザのズーム レベルを 100% に設定する

上記のすべてを行い、多くのフォーラムを読みましたが、答えが得られませんでした。

同じコードを使用して、別のマシンで実行しました。そこでうまくいきます。2 番目のマシン構成は次のとおりです。

Selenium スタンドアロン サーバー - 2.25.0
IE - 8.0.7601.17514 (64 ビット)
IEDriverServer - 2.25.1.0
Java - SDK7
OS - Win 7 プロフェッショナル

正確な問題が何であるかわかりませんか?根本的な原因を見つけようとしましたが、そうではありません。
問題を解決するために私を助けてください。
前もって感謝します...

4

2 に答える 2

1

考えるべきことはかなりあります:

Selenium を更新します。v2.28です。

ChromeまたはFirefoxドライバーの使用に切り替えて、問題が IEDriver にあるのか、それとも他の何かにあるのかを確認します。

また、IE の「保護モード」の意味を誤解しています。あなたはセキュリティゾーンを壊しています、これは違います。

この画像を参照してください。

http://www.ivertech.com/images/internetExplorer7/IE7UncheckEnableProtectedModeCheckBox.gif

各ゾーンには、独自の保護モード設定があります。すべてのゾーンのチェックを外します。

そこにチェックボックスがない場合は、IT 管理者によって無効にされている可能性があります。チェックボックスがある場合、私たちにできることはあまりありません。IT チームに相談しスクリーンショットを表示する必要があります。あなた持っているもの。

暗黙的なタイムアウトを使用する代わりに、実際にWebDriverWait条件でラップします。

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html

妥当なタイムアウト (1 分) 後に失敗した場合は、何か他の問題があることがわかります。暗黙の待機関数を使用しないでください。

また、この CSS セレクターを使用するなど、別の方法で要素にアクセスできるかどうかも確認してください。

input.w327
于 2013-01-21T09:45:15.587 に答える
0

表示されたエラー メッセージによると、ページが完全に読み込まれる前にフィールドに値を入力しています。あなたが使用した待機期間は、ページをロードするのに十分です。これを使って

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

また

待機時間を増やします。Thread.sleep(10000); を使用している場合 コードで、それを Thread.sleep(20000); に増やします。それが動作します。

于 2013-01-18T11:46:15.723 に答える