所以我很困惑为什么这个代码不工作。
这就是这个代码的作用...
1.使用向下键向下滚动;
1.在向下滚动之前捕获页面高度;
1.检查旧高度是否等于新高度;
1.向下滚动后设置旧高度;
1.如果滚动前后页面高度相同,则返回true并停止滚动;
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
var reachedEnd = false;
var newHeight = js.ExecuteScript("return document.body.scrollHeight");
var oldHeight = js.ExecuteScript("return document.body.scrollHeight");
while (!reachedEnd)
{
driver.FindElement(By.CssSelector("body")).SendKeys(Keys.End);
Thread.Sleep(2);
newHeight = js.ExecuteScript("return document.body.scrollHeight");
if (oldHeight == newHeight)
{
reachedEnd = true;
}
else
{
oldHeight = newHeight;
}
}
所以问题是新旧高度在页面末尾相等,但它没有返回true。
对此有什么想法吗?我已经想了三个小时了。
2条答案
按热度按时间eyh26e7m1#
要向下滚动到页面的末尾,您可以使用以下命令:
cnwbcb6i2#
你的方法对我有效,谢谢。这修复了退出循环:
问题是在铸造长。