I have a problem with my Selenium code not performing the correct keyPress + click operation.
The test should open the jqueryui.com link and select the first 2 li elements on the page.
I use Selenium 2.23 and Firefox 10. My code is as follows (I have three different ways to make it work, but no one has done it):
FirefoxProfile profile = new FirefoxProfile ();
profile.setEnableNativeEvents (true); WebDriver browser = new FirefoxDriver (profile); browser.get (" http://jqueryui.com/demos/selectable/ ");
List items = browser.findElements (By.cssSelector ("ol # selectable li"));
Actions a = new Actions(browser); a.keyDown(Keys.CONTROL) .moveToElement(elements.get(0)) .click() .moveToElement(elements.get(1)) .click() .keyUp(Keys.CONTROL) .build() .perform(); Keyboard keyboard = ((HasInputDevices) browser).getKeyboard(); keyboard.pressKey(Keys.CONTROL); List<WebElement> selectOptions = browser.findElements(By.cssSelector("ol#selectable li")); selectOptions.get(1).click(); selectOptions.get(3).click(); keyboard.releaseKey(Keys.CONTROL);
Actions builder = new Actions(browser); builder.keyDown(elements.get(0), Keys.CONTROL) .click(elements.get(0)) .click(elements.get(1)) .keyUp(Keys.CONTROL); Action selectMultiple = builder.build(); selectMultiple.perform(); Robot robot = new Robot(); robot.delay(1000); robot.keyPress(KeyEvent.CTRL_MASK); elements.get(0).click(); elements.get(1).click(); robot.keyRelease(KeyEvent.CTRL_MASK); browser.quit();
Can someone help me with some other suggestions?
source share