2012-04-09 25 views
4

callbackでJSを実行するために、execute_async_scriptコマンド(SeleniumリモートWebドライバで)を使用したいと思います。Selenium WebDriverでexecute_async_scriptを使用する

私はselenium.seleniumモデルのための私の現在の設定でこれに似たものがあります。

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

をしかし、私はexecute_async_scriptを呼び出すことができますので、どのように私はselenium.seleniumと一緒にwebdriverを実装を使用していますか?

答えて

4

リモコンの設定を使用しているようですが、そうですか?そのコード内からWebDriverインスタンスをインスタンス化できるはずですが、WebDriver dllを参照する必要があります。ブラウザドライバオブジェクト(FirefoxDriver、InternetExplorerDriver、ChromeDriverなど)のインスタンスをインスタンス化し、IWebDriverの「ドライバ」プロパティをそのインスタンスと同じに設定する必要があります。その後、IJavaScriptExecutorオブジェクトとして "js"(または何でも好きなもの)という名前のインターフェイスオブジェクトを作成し、非静的メソッド "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(...); 
関連する問題