4

(SeleniumリモートWebドライバーで)execute_async_scriptコマンドを使用して、コールバックを使用してJSを実行したいと思います。

selenium.seleniumモデルの現在のセットアップには、これに似たものがあります。

self.selenium = selenium("localhost", 4444, "*firefox", "http://localhost:8000")

しかし、execute_async_scriptを呼び出すことができるように、selenium.seleniumと一緒にWebDriver実装を使用するにはどうすればよいですか?

4

1 に答える 1

4

今、リモコンのセットアップを使用しているようですね。そのコード内からWebDriverインスタンスをインスタンス化できるはずですが、WebDriverdllを参照する必要があります。ブラウザドライバオブジェクト(FirefoxDriver、InternetExplorerDriver、ChromeDriverなど)のインスタンスをインスタンス化してから、IWebDriverの「driver」プロパティをそのインスタンスと同じに設定する必要があります。次に、「js」(または任意の名前)という名前のインターフェイスオブジェクトをIJavaScriptExecutorオブジェクトとして作成し、非静的メソッド「ExecuteScript」または「ExecuteAsyncScript」(この場合)を呼び出します。

以下の私のコードはC#.NETにあります(NUnitを使用していると仮定します)。私はその言語を知らないので、Pythonの実装を見つける必要があります。

クラスデータメンバー:

private IWebDriver driver;
private StringBuilder verificationErrors;
private string baseURL;

コード:

driver = new FirefoxDriver(new FirefoxProfile());
baseURL = "http://???";  // replace "???" with website domain
ISelenium selenium = new WebDriverBackedSelenium(driver, baseURL);
selenium.Start();

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("$('#id').click();");  // assumes JQuery is used in page
js.ExecuteAsyncScript(...);
于 2012-04-18T10:04:57.653 に答える