当我使用moveToElement时,我收到错误“ org.openqa.selenium.interactions.MoveTargetOutOfBoundsException:元素内的偏移量无法滚动到视图中:(0,0):命令持续时间或超时:34毫秒”。下面的代码用于 p>
WebDriverWait waitForEditI = new WebDriverWait(driver, 20);
waitForEditI.until(ExpectedConditions.elementToBeClickable(editContactI));
Actions action = new Actions(driver);
action.moveToElement(editContactI).moveToElement(editContactIEdit).click().build().perform();
和网络元素
@FindBy(how = How.CSS, using = "div#evy_aboutme_content_id08 div.evy_edit_overflow > div.evy_rltn_icon2 i")
WebElement editContactI;
@FindBy(how = How.CSS, using = "div#evy_aboutme_content_id08 div.evy_aboutme_education_content.ng-scope a:nth-child(1)")
WebElement editContactIEdit;
如下图所示,首先我需要悬停i元素(以黄色圆圈标记)并单击编辑(黑色圆圈)。
我已经尝试了以下所有选项。但没有任何工作。它的位置是动态的。
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("scroll(250, 0)");
和
Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();
请帮帮我。
答案 0 :(得分:0)
我会分开不同的行动。我会使用Actions
进行悬停,然后执行“正常”click()
。
Actions builder = new Actions(driver);
builder.moveToElement(editContactI).perform();
driver.findElement(editContactIEdit).click();
答案 1 :(得分:0)
此解决方案适合我
((JavascriptExecutor)driver).executeScript("$('div#evy_aboutme_content_id08 div.evy_edit_overflow > div.evy_rltn_icon2 i').hover();");
((JavascriptExecutor)driver).executeScript("$('div#evy_aboutme_content_id08 div.evy_aboutme_education_content.ng-scope a:nth-child(1)').click();");
答案 2 :(得分:0)
如果在IE浏览器中收到上述异常。请按照以下步骤操作:
最后再次运行您的代码,现在您应该不会看到此错误。 :)