2

アクションビルダーをSeleniumWebdriverで動作させることができないようです。Javascriptを使用するメニューを自動化しようとしています。マウスオーバーしてから移動して、マウスオーバー後に表示されるリンクをクリックする必要があります。

$driver.find_element(:id, "top_menu").find_elements(:tag_name, "a").each{ |a|
  if a.attribute('href').include? "javascript"
    then w = a 
    $driver.action.move_to(w).perform
    break
  end
}

この要素の検索はやや曖昧であり、ベストプラクティスではないことに気づきました。この要素のIDはすでに要求しています。アクションビルダーの使用方法や、マウスの動きを自動化するためのより良い方法についてのアドバイスをいただければ幸いです。

これが私が得ているエラーです。
`generateErrorForNativeEvents':ネイティブインタラクションを実行できません:ネイティブイベントコンポーネントを読み込めませんでした。(Selenium :: WebDriver :: Error :: InvalidElementStateError

ありがとう

4

2 に答える 2

1

ポジティブではありませんが、Firefox14.0.1へのアップデートがそれを壊したのではないかと思います。私たちのテストも壊れました。私はまだ修正に取り組んでいます。

更新:ええ、Firefox 13.0.1にダウングレードし、テストは現在機能しています。

于 2012-08-06T17:44:15.140 に答える
0

InvalidElementStateErrorの同じ問題に直面しました:ネイティブインタラクションを実行できません:要素をダブルクリックしようとしたときにネイティブイベントコンポーネントを読み込めませんでした

次の行を追加すると問題が解決しました

プロファイル=Selenium:: WebDriver :: Firefox :: Profile.new

profile.native_events = false

機能=Selenium:: WebDriver :: Remote :: Capabilities.firefox(:firefox_profile =>プロファイル)

@@ driver = Selenium :: WebDriver.for:firefox、:desired_capabilities=>機能

注:-これを行うと、Firefoxテストは、ネイティブクリックの代わりにJavascriptイベントの発生を介してユーザーインタラクションをシミュレートするようになります。これには長所と短所があります。それが役に立てば幸い!

于 2013-07-17T12:25:47.883 に答える