我正在使用此代码按偏移
移动元素Actions builder = new Actions(driver);
builder.moveToElement(element).clickAndHold(element).moveByOffset(xOffset,yOffset).perform();
只使用一次但是当我使它成为一个函数时,它工作正常
public void fun(int xOffset,int yOffset, String elementId){
WebElement element = driver.findElement(By.id(id));
Actions builder = new Actions(driver);
builder.moveToElement(element).clickAndHold(element).moveByOffset(xOffset,yOffset).perform();
}
fun(100,0,"main_element");
fun(0,100,"main_element");
并使用多个元素调用它我收到错误Cannot press more then one button or an already pressed button
答案 0 :(得分:1)
有几种可能性可能会触发此问题:
如果您使用相同的elementId但只是更改偏移量,这对您没有帮助。 每次clickAndHold(元素)后,您需要释放此按钮。否则,正如错误消息告诉您的那样,该按钮被视为"已按下"。 - >看一下方法here
的描述那么你能做什么(取决于你点击按钮实际想要实现的目标):
1)不要clickAndHold()
,而只是click()
builder.moveToElement(element).click(element).moveByOffset(xOffset,yOffset).perform();
2)在clickAndHold()
之后,使用release()
builder.moveToElement(element).clickAndHold(element).moveByOffset(xOffset,yOffset).perform();
builder.release(element).perform();