我需要进入div的底部,我要说的是评论 https://www.google.com/maps/place/Tea+O+Clock/@33.7229108,73.0603228,17z/data=!4m7!3m6!1s0x38dfbfa073cc9223:0x49c9b3b52b308f29!8m2!3d33.7229108!4d73.0625115!9m1!1b1?hl=en
在执行此操作时,我无法向下滚动滚动条,因为我需要先加载所有评论,然后才能将其放入数据库
IJavaScriptExecutor je = (IJavaScriptExecutor)Constants.driver;
je.ExecuteScript("arguments[0].scrollIntoView(false);", scrollAbleElement);
我不想使用scrollIntoView,因为在底部没有可以让scrollIntoView的任何div
-不起作用
Actions actions = new Actions(Constants.driver);
actions.ClickAndHold(scrollAbleElement).MoveByOffset(0, 170).Perform();
-效果不佳
js.ExecuteScript("document.getElementsByClassName('widget-pane-content scrollable-y').scrollTop = document.getElementsByClassName('widget-pane-content scrollable-y').scrollHeight");
尝试了我可以在互联网上找到的所有可能的解决方案
Actions actions = new Actions(Constants.driver);
actions.ClickAndHold(scrollAbleElement).MoveByOffset(0, 170).Perform();
我只需要使div中的滚动条自动上下移动,以便它可以加载所有评论,然后就可以轻松获得它们。
答案 0 :(得分:0)
您可以使用此...只需调用它,然后添加要向下滚动的次数。
public static void ScrollPage(int counter)
{
const string script =
@"window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));";
int count = 0;
while (count!=counter)
{
IJavaScriptExecutor js = _webDriver as IJavaScriptExecutor;
js?.ExecuteScript(script);
count++;
}
}