【发布时间】:2017-08-24 05:52:42
【问题描述】:
在执行 selenium webElement.click() 后,我遇到了 JS scrollIntoView 重置的问题。当我在自定义滚动框上使用它时,它会正确执行操作,然后在点击 .click() 后滚动回顶部。
element = driver.findElement(By.xpath("//div[@id='iLegenda']/ul/li[4]/i"));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500);
driver.findElement(By.xpath("//div[@id='iLegenda']/ul/li[4]/i")).click(); //this line resets the position of the affected scrollbar
另一种解决方案是强制单击该元素,即使它没有显示在屏幕上,但我还没有在这方面找到任何信息......
【问题讨论】:
-
对您的替代解决方案的建议,
$(element).trigger("click")如果您不能使用 jQuery,您需要将其转换为纯 JavaScript。 api.jquery.com/trigger -
@lasec0203 试过了,还是会重置。我在这里错过了什么吗? | element = driver.findElement(By.xpath("//div[@id='iLegenda']/ul/li/ul/li[3]/i")); jse.executeScript("arguments[0].scrollIntoView(true);", element); jse.executeScript("arguments[0].click();", element);
-
您是否尝试在点击后再次将其滚动到视图中
-
是的,每次点击都会重置。
-
好吧,如果您必须在 ec2 测试中查看可点击元素,那么看起来您每次点击后都必须调用 scrollintoview
标签: javascript java selenium-webdriver