Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 使用Selenium Webdriver的Firefox上的鼠标clickAndHold()无法正常工作_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 使用Selenium Webdriver的Firefox上的鼠标clickAndHold()无法正常工作

Java 使用Selenium Webdriver的Firefox上的鼠标clickAndHold()无法正常工作,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在使用SeleniumWebDriver客户端2.39和Firefox26 鼠标单击并按住事件无法正常工作。我的代码是 WebDriver driver=new FirefoxDriver(); driver.get("http://startingwithseleniumwebdriver.blogspot.com/2013/12/frmset1.html"); WebElement multiSelectDropDown=driver.findElement(By.name("multi

我正在使用SeleniumWebDriver客户端2.39和Firefox26

鼠标单击并按住事件无法正常工作。我的代码是

WebDriver driver=new FirefoxDriver();
driver.get("http://startingwithseleniumwebdriver.blogspot.com/2013/12/frmset1.html");
WebElement multiSelectDropDown=driver.findElement(By.name("multiselectdropdown"));
List<WebElement> dropdownlists = multiSelectDropDown.findElements(By.tagName("option"));
Actions builder=new Actions(driver);
builder.clickAndHold(dropdownlists.get(0)).
               clickAndHold(dropdownlists.get(6)).click().build();
WebDriver=newfirefoxdriver();
驱动程序。获取(“http://startingwithseleniumwebdriver.blogspot.com/2013/12/frmset1.html");
WebElement multiSelectDropDown=driver.findElement(By.name(“multiSelectDropDown”);
List DropDownList=multiSelectDropDown.findElements(按.tagName(“选项”));
动作生成器=新动作(驱动程序);
builder.clickAndHold(dropdownlists.get(0))。
单击并按住(dropdownlists.get(6))。单击().build();
此代码不提供任何错误,但仅选择一个元素。
我可以用其他方式绕过这个问题,但我想知道它有什么地方不起作用。

如果您想从列表中选择多个选项,请尝试此操作(它将选择前3个元素):

List elements=driver.findElements(By.xpath(//select[@name='multiselectdropdown']/option”);
对于(int i=0;i<3;i++){
新操作(驱动程序).keyDown(Keys.CONTROL).单击(elements.get(i)).keyUp(Keys.CONTROL).perform();
}

我面临同样的问题,但它从头到尾选择元素,并给出一些错误,如

无法执行本机交互:无法获取元素的节点-无法交互

我通过这种方式得到了解决方案你可以解决你的问题

 builder.clickAndHold(dropdownlists.get(0)).moveToElement(dropdownlists.get(6)).release().build().perform();

@Andrian谢谢你的帮助。我有两件事1.我想选择元素而不是顺序意味着随机点击元素2.这里你使用键盘事件我只想使用鼠标事件。3.我没有找到任何旁路解决方案。我想知道为什么它不起作用。我的代码中有任何问题吗?是的,我做了同样的事情来避免这个问题,顺便说一句,谢谢你们的帮助。Moin和saba,你们在一起玩吗。萨巴问了同样的问题,莫因回答了,在这个问题中,情况正好相反。莫因问了问题,萨巴回答了。问同一个问题和回答对方问题的目的是什么?
 builder.clickAndHold(dropdownlists.get(0)).moveToElement(dropdownlists.get(6)).release().build().perform();