首页 > 解决方案 > 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();
}

但是当循环完成查看帖子时,它会滚动到页面顶部,然后转到下一个帖子。什么可能导致这种奇怪的行为?

标签: c#selenium

解决方案


我已经弄清楚了问题所在。这不是 Selenium 的怪癖,这是我的错误,当我从列表中清除每个帖子时,循环重新开始并用旧帖子和刚刚加载的帖子填充列表,这就是 Selenium 移动到顶部的原因饲料并重新开始。


推荐阅读