2

Selenium 2.0 / Webdriver で C# を使用しており、新しいブラウザー ウィンドウを開くテーブル行のダブルクリックをシミュレートしようとしています。

2 つの問題があります。

  1. 一意のクラス名を持つテーブル行を見つけた後 (つまりfindelement(By.classname("...")))、クリック メソッド (または選択/送信) を適用しても何も実行されず、問題の要素に対してその種類のアクションを実行できないと不平を言います。

  2. Selenium 2.0/Webdriver でダブルクリックを実行するにはどうすればよいですか?

4

2 に答える 2

7
  1. テーブル セル ( <td>) 要素をクリックする必要があります。

  2. ダブルクリックは、WebDriver にはまだ実装されていません。ステータスについては、Issue #244を参照してください。また、この問題へのコメントには、Firefox でのダブルクリックに使用できる JavaScript が含まれています。

IE の場合、次を実行する必要があります。

(IJavaScriptExecutor)driver).executeScript("arguments[0].fireEvent('ondblclick');", cell);

Firefox および Chrome の場合:

(IJavaScriptExecutor)driver).executeScript("var evt = document.createEvent('MouseEvents');" +
        "evt.initMouseEvent('dblclick',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" +
        "arguments[0].dispatchEvent(evt);", cell);

ここで、cellはスクリプトを実行する Web 要素です。

于 2010-10-21T12:03:31.733 に答える
5

ダブルクリックの場合、次の操作を実行できます。

from selenium.webdriver import ActionChains

action_chains = ActionChains(driver)
action_chians.double_click(on_element).perform()

*where, on_element = ダブルクリックしたい要素*

私はpythonを使ってこれをしました。そしてそれはうまくいきました:)

于 2012-04-02T09:09:45.457 に答える