這讓我瘋狂,我只需要WebDriver右鍵單擊一個元素,其餘的硒就可以工作。無法右鍵單擊,Java Selenium WebDriver java.lang.UnsupportedOperationException:contextMenu
我正在使用Eclipse,所有我的.jar導入和庫設置都正確。
WebDriver driver = new FirefoxDriver();
String baseUrl = "http://............/";
selenium = new WebDriverBackedSelenium(driver, baseUrl);
在我的代碼很久以後,我的JavaScript的portlet行我想執行上沒有任何問題,用鼠標右鍵單擊左內點擊。
selenium.click("//tr[@id[contains(.,'Equipment')]]");
工作得很好,被點擊的行高亮顯示,就像它應該做的那樣。
現在我只需要右鍵單擊它,但我不能!嘗試:
selenium.contextMenu("//tr[@id[contains(.,'Equipment')]]");
無法用鼠標右鍵單擊,並返回我的錯誤:java.lang.UnsupportedOperationException:文本菜單。
有一個元素直到該行被右鍵單擊才被視爲「可見」。它被檢測爲存在,但硒將不會運行它,除非我在WebDriver中手動右鍵單擊它以使其可見。否則,它只是給了我:
com.thoughtworks.selenium.SeleniumException:元素當前不可見,因此可能不會與之交互。
右鍵單擊該行是使元素「可見」的原因,這就是爲什麼我需要使硒右鍵單擊非常糟糕。我已經測試過,以確保不存在的元素被檢測爲存在,它是。
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作爲右鍵點擊的替代品,這並不好。
這一切工作中硒IDE很好,但我需要它與webdriver的工作,所以我亂用它在Java中。請幫助我。
編輯:感謝Slanec的建議和更多與行動生成器搞亂,我發現這是我的硒webdriver不是最新的Firefox 14的問題。這很奇怪,考慮我以爲我已經下載了最新的就在上週四。無論哪種方式,直到webdriver 2.25.0,我都使用了Firefox 14的本機事件支持,而我使用的是2.24.1。
看看這篇文章是否有助於http:// stackoverflow.com/questions/7647154/webdriver-contextclickwebelement-not-opening-the-context-menu – anazimok 2012-07-21 00:43:02
唉,我已經試過了。我得到:線程「main」中的異常org.openqa.selenium.InvalidElementStateException:無法執行本地交互:無法加載本地事件組件。即使我有profile.setEnableNativeEvents(true);但當我嘗試使用動作進行操作時,它仍會給我那個錯誤。有沒有辦法讓Firefox停止關注某個元素是否隱藏? – Mike 2012-07-21 00:51:47
是否有任何特殊的原因,您通過舊的Selenium界面使用新的WebDriver?在你必須支持之前,你是否繼承了一套測試套件,還是對舊格式感到滿意? – 2012-07-21 07:27:30