首页 > 解决方案 > 如何确定是否确实需要滚动到元素?

问题描述

我运行多个 E2E 场景,在其中一个场景中,滚动显示元素是唯一可靠地单击给定链接的解决方案。但是,这会增加 200% 的执行时间,因为驱动程序会尝试滚动每个元素,因为我希望有一个通用的方法来单击给定文本的链接,以避免不必要的滚动。

有没有一种方法可以确定元素是否显示在视口中并且不需要滚动到它?

标签: .netseleniumselenium-webdriver

解决方案


可点击的先决条件IWebElementDisplayedEnabled

IWebElement element = driver.FindElement(...);
if (!(element.Displayed && element.Enabled))
{
    //scroll to the element
}
element.Click();

*您可能可以放弃检查,只有当元素被明确禁用element.Enabled时它才会返回 false 。如果您可以在滚动后单击它,则它已启用。

除了显式禁用的输入元素之外,Enabled 属性通常会为所有内容返回 true。


推荐阅读