c# - Selenium MoveToElement() 动作在循环时滚动到顶部
问题描述
我正在编写一个循环,在提要中从一个帖子滚动到另一个帖子,以完成我使用 MoveToElement() 操作。我试过了:
Actions action = new Actions(driver);
while (true)
{
List<IWebElement> posts = new List<IWebElement>(driver.FindElements(By.ClassName("feed_row")));
foreach (IWebElement k in posts)
{
action.MoveToElement(k);
action.Perform();
System.Threading.Thread.Sleep(1000);
}
posts.Clear();
}
但是当循环完成查看帖子时,它会滚动到页面顶部,然后转到下一个帖子。什么可能导致这种奇怪的行为?
解决方案
我已经弄清楚了问题所在。这不是 Selenium 的怪癖,这是我的错误,当我从列表中清除每个帖子时,循环重新开始并用旧帖子和刚刚加载的帖子填充列表,这就是 Selenium 移动到顶部的原因饲料并重新开始。
推荐阅读
- apache-kafka - KafkaStreams metadataForKey 仅在特定实例中出现问题
- arrays - 访问结构中二维数组中一行的最后一个元素
- html - 您可以从 html 中准确打印字母吗?
- ibm-cloud - 通过搜索技能从 Watson Discovery 检索答案
- autohotkey - 如何使用日期脚本转义 AutoHotKey 中的“+”字符?
- javascript - 预处理:错误无法解析 @Component() 元数据路径/到/my.component.ts
- html - flex-grow:将最大宽度限制为 100% 减去其他同级项
- selenium - Webdriverio selenium Standalone 不更新驱动程序版本
- python - 如何让用户使用 csv 文件中的数据执行计算?
- c# - AddRelativeForce() 导致不必要的转向