[英]Mouse clickAndHold() not working properly on Firefox Using Selenium Webdriver
我正在使用 selenium webdriver 客户端 2.39 和 Firefox 26。
鼠标单击并按住事件无法正常工作。 我的代码就像
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();
此代码没有给出任何错误,但 select 只有一个元素。 我可以使用其他方式绕过这个问题,但我想知道它为什么不起作用。
我面临同样的问题,但它从头到尾选择元素并给出一些错误
无法执行本机交互:无法获取元素的节点 - 无法进行交互
我通过这种方式得到了解决方案,你可以为你的问题做到这一点
builder.clickAndHold(dropdownlists.get(0)).moveToElement(dropdownlists.get(6)).release().build().perform();
如果要从列表中选择多个选项,请尝试此操作(它将选择前3个元素):
List<WebElement> elements = driver.findElements(By.xpath("//select[@name='multiselectdropdown']/option"));
for(int i = 0; i < 3; i++) {
new Actions(driver).keyDown(Keys.CONTROL).click(elements.get(i)).keyUp(Keys.CONTROL).perform();
}
ButtonUp(或release()
)应该是 ButtonDown(或clickAndHold()
)按钮操作之后的下一个按钮操作(有关 ButtonDown 文档,请参阅 Appium 说明)。 您的代码执行两个连续的clickAndHolds()
后跟一个click()
而不执行release()
。 它应该是这样的:
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)).moveTo(dropdownlists.get(6)).release().build();
虽然链接文档不适用于 Selenium,但 Appium 构建于 Selenium 之上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.