我有以下Selenium C#代码:
IWebElement energyLink= driver.FindElement(By.LinkText("Energy"));
Actions clickAction=new Actions(driver);
clickAction.MoveToElement(energyLink).MoveByOffset(-25,0).Click().Build().Perform();
在clickAction.MoveToElement(energyLink).MoveByOffset(-25, 0).Click().Perform();
我正在InvalidOperationException= "Parameter 'x' was not a positive integer(IndexOutOfBounds)"
我的目的是点击位于的第三方组件
X:15 Y:395
IWebElement energyLink位于坐标X:40, Y:395
。
因此我尝试使用MoveByOffset(-25,0)
答案 0 :(得分:1)
我认为你在Firefox上执行。
在selenium 2.53.1版本之后,它使用geckodriver.exe在Firefox中执行自动化脚本。
在geckodriver中未实现Actions类。所以你得到了 那个错误。
如果您使用chrome执行,那么您将无法获得该异常。
如果你想在Firefox中执行,那么你必须使用不需要geckodriver的旧版selenium
答案 1 :(得分:0)
ClickAndHold : 用于左键单击特定元素并按住 MoveByOffset:将该保持元素移动到给定位置 释放:释放当前偏移位置的元素 build and perform : 完成动作。
IWebElement energyLink= driver.FindElement(By.LinkText("Energy"));
Actions clickAction=new Actions(driver);
clickAction.ClickAndHold(energyLink).MoveByOffset(-25,0).Release().Build().Perform();