4

最近、Firefox 13 を動作させるために Selenium 2.24.1 に更新しました。今回の更新では、chromedriver.exe に似た実行可能ファイルを実行して、イベントを IE にディスパッチするようになりました。しかし、IE でテストを実行することはできませんでした。これを chrome で実行するには、明らかに webdriver.chrome.driver ビットも設定する必要がありますが、それと Firefox では同じコードで問題なく動作します。

ここに私のソースコードがあります:

public class GoogleTest {

@Test
public void test() throws Exception {
  System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
  final WebDriver driver = new InternetExplorerDriver();
  driver.get("http://www.google.com");
  driver.findElement(By.name("q")).sendKeys("test");
  driver.findElement(By.name("q")).submit();
  driver.quit();
}

}

ただし、このテストの実行時にこのスタック トレースが表示されます

org.openqa.selenium.NoSuchElementException: Unable to find element with name == q (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 395 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.24.1', revision: '17205', time: '2012-06-19 15:28:49'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_01'
Driver info: driver.version: RemoteWebDriver
Session ID: e20f8370-00ed-4bf6-a4fa-a0c09c2b6d8c
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:242)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:303)
at org.openqa.selenium.By$ByName.findElement(By.java:291)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:234)
4

5 に答える 5

12

これはおそらく非常に明白ですが、元の投稿で言及しておらず、ドライバーをダウンロードしたばかりで、内部のおもちゃのアプリが機能しているため、IEDriver コードページに記載されているように IE のセキュリティ設定を再確認しましたか?

Windows Vista または Windows 7 の IE 7 以降では、各ゾーンの保護モード設定を同じ値に設定する必要があります。値は、すべてのゾーンで同じである限り、オンまたはオフにすることができます。保護モードを設定するには、[ツール] メニューから [インターネット オプション...] を選択し、[セキュリティ] タブをクリックします。ゾーンごとに、タブの下部に「保護モードを有効にする」というラベルの付いたチェックボックスがあります。

以前に以前のバージョンの Selenium を使用していた場合は、既にこれを行っている可能性がありますが、念のために確認する価値があると思いました...

于 2012-07-02T16:33:14.833 に答える
1

まあ、エラーメッセージは誤解を招くものですが、少なくとも私の場合はそうでした. システム管理者によって保護モード: オフでロックダウンされたシステムがありました。そのため、保護モードを切り替えることができませんでした。次に、システムに管理者ユーザーがいることに気付いたので、管理者ユーザーとしてログインし、保護モードを切り替えようとしました。無効のままでした。次に、管理者ユーザー アカウントで Selenium を実行すると、問題なく動作しました。

そのため、selenium を実行できるようにするには、管理者権限でログインする必要がある場合があります。そのトリックは私のために働いた。

于 2013-02-27T19:06:54.230 に答える
0

私は非常によく似た問題を抱えていました。インターネット オプションには、機能させるために有効にする必要がある設定がありました。[詳細設定] > [設定] > [セキュリティ] > [マイ コンピューター上のファイルでのアクティブ コンテンツの実行を許可する]。

このチェックボックスをオンにすると、IE テストが期待どおりに機能し、要素を見つけてブラウザーとやり取りできるようになりました。

于 2016-06-09T20:50:23.803 に答える
0

ダウンロードした IEWebdriver サーバーを確認します。32 ビット IE を使用している場合は、32 ビット IEWebdriver をダウンロードして使用します。

それが役立つことを願っています。

于 2014-02-08T01:09:35.277 に答える