これは私を夢中にさせています。要素を右クリックするためにWebDriverが必要なだけで、残りのセレンは機能します。
私は Eclipse を使用しています。すべての .jar インポートとライブラリが正しくセットアップされています。
WebDriver driver = new FirefoxDriver();
String baseUrl = "http://............/";
selenium = new WebDriverBackedSelenium(driver, baseUrl);
コードのかなり後の方で、問題なく右クリックを実行したい JavaScript ポートレットの行内を左クリックします。
selenium.click("//tr[@id[contains(.,'Equipment')]]");
それは問題なく動作し、クリックされた行が強調表示されます。
今はそれを右クリックする必要がありますが、できません! しようとしている:
selenium.contextMenu("//tr[@id[contains(.,'Equipment')]]");
右クリックに失敗し、次のエラーが返されます: java.lang.UnsupportedOperationException: contextMenu.
その行が右クリックされるまで「可視」と見なされない要素があります。既存のものとして検出されていますが、WebDriver で実行中に自分で手動で右クリックして表示しない限り、セレンは実行しません。それ以外の場合は、次のようになります。
com.thoughtworks.selenium.SeleniumException:Element は現在表示されていないため、操作できない可能性があります。
その行を右クリックすると、要素が「見える」ようになります。そのため、セレンの右クリックがひどく必要です。目に見えない要素が存在するものとして検出されていることを確認するためにテストしました。
boolean exists = selenium.isElementPresent("//a[@id[contains(.,'faction')]]");
boolean visible = selenium.isVisible("//a[@id[contains(.,'faction')]]");
System.out.println("Exists: " + exists);
System.out.print("Visible: " + visible);
私に与えます
Exists: true
Visible: false
つまり、私の xpath の問題ではありません。それはそこにある。「目に見えない」だけです。右クリックの代わりに Shift+F10 も送信しようとしましたが、うまくいきません。
これはすべて Selenium IDE で正常に動作しますが、Java で操作できるように WebDriver で動作させる必要があります。私を助けてください。
編集: Slanec のアドバイスのおかげで、さらにアクション ビルダーをいじってみたところ、私のセレン Web ドライバーが Firefox 14 に対応していないことが問題であることがわかりました。先週の木曜日に最新のものをダウンロードしたと思っていたことを考えると、奇妙です。 . いずれにせよ、明らかに Firefox 14 のネイティブ イベント サポートは webdriver 2.25.0 まで追加されませんでした。私は 2.24.1 を使用しています。