我有一个问题,我的Selenium代码无法正确执行keyPress + click操作。
测试应该打开jqueryui.com链接并选择页面上的前两个li元素。
我正在使用Selenium 2.23和Firefox 10。我的代码如下(我尝试了4种不同的方法使其工作,但都没有成功):
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true); WebDriver browser = new FirefoxDriver(profile); browser.get("http://jqueryui.com/demos/selectable/");
List elements = 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();
有人能给我提供其他建议吗?