Това ме подлудява, просто ми трябва 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:Елементът в момента не се вижда и затова може да не се взаимодейства с него.
Щракването с десния бутон върху този ред е това, което прави елемента „видим“, поради което имам нужда от селен с десен бутон толкова много. Тествах, за да се уверя, че невидимият елемент се разпознава като съществуващ, така е.
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, но ми трябва да работи с WebDriver, за да мога да се забърквам с него в Java. Моля, помогнете ми.
РЕДАКТИРАНЕ: Благодарение на съвета на Slanec и повече бъркане с инструмента за създаване на действия, открих, че проблемът е в това, че моят selenium webdriver не е актуален за Firefox 14. Странно е, като се има предвид, че мислех, че съм изтеглил най-новия точно миналия четвъртък . Така или иначе, очевидно естествената поддръжка на събития за Firefox 14 не е добавена до webdriver 2.25.0, а аз използвам 2.24.1.