Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SeleniumWebDriver的多重选择_Java_Jquery_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

Java 使用SeleniumWebDriver的多重选择

Java 使用SeleniumWebDriver的多重选择,java,jquery,selenium,selenium-webdriver,webdriver,Java,Jquery,Selenium,Selenium Webdriver,Webdriver,我想使用SeleniumWebDriver模拟一个多选场景,以便用户能够选择项目1和项目5(请参见URL) 网址 现在,我正试图使用点击并按住功能来完成此操作,但当我尝试时,它会选择项目1和项目5之间的所有其他项目 现在这种情况正在发生 我想要这个 我的代码是这样的: baseUrl="http://jqueryui.com/selectable/"; driver.get(baseUrl); driver.switchTo().frame(0); List<WebElement>

我想使用SeleniumWebDriver模拟一个多选场景,以便用户能够选择项目1和项目5(请参见URL)

网址

现在,我正试图使用点击并按住功能来完成此操作,但当我尝试时,它会选择项目1和项目5之间的所有其他项目

现在这种情况正在发生

我想要这个

我的代码是这样的:

baseUrl="http://jqueryui.com/selectable/";
driver.get(baseUrl);
driver.switchTo().frame(0);
List<WebElement> list=driver.findElements(By.cssSelector("ol#selectable *"));
Actions act=new Actions(driver);

act.clickAndHold(list.get(0)).clickAndHold(list.get(4)).release().build().perform();

然后我得到与上面代码相同的输出。我应该在此处更改什么,以便不选择介于两者之间的项目。

由于您需要的是一种更为CTRL+click的使用场景,我建议如下:

Actions actions = new Actions(driver)
actions.keyDown(Keys.CONTROL)
       .click(list.get(0))
       .click(list.get(4))
       .keyUp(Keys.CONTROL)
       .build();
       .perform();

虽然我还没有测试过这段代码,但这应该会让您走上正确的道路。

谢谢Tim。这太完美了。我有点跛脚,因为我没有想到这个控制的东西。
Actions actions = new Actions(driver)
actions.keyDown(Keys.CONTROL)
       .click(list.get(0))
       .click(list.get(4))
       .keyUp(Keys.CONTROL)
       .build();
       .perform();