.net - 如何确定是否确实需要滚动到元素?
问题描述
我运行多个 E2E 场景,在其中一个场景中,滚动显示元素是唯一可靠地单击给定链接的解决方案。但是,这会增加 200% 的执行时间,因为驱动程序会尝试滚动每个元素,因为我希望有一个通用的方法来单击给定文本的链接,以避免不必要的滚动。
有没有一种方法可以确定元素是否显示在视口中并且不需要滚动到它?
解决方案
可点击的先决条件IWebElement
是Displayed
和Enabled
IWebElement element = driver.FindElement(...);
if (!(element.Displayed && element.Enabled))
{
//scroll to the element
}
element.Click();
*您可能可以放弃检查,只有当元素被明确禁用element.Enabled
时它才会返回 false 。如果您可以在滚动后单击它,则它已启用。
除了显式禁用的输入元素之外,Enabled 属性通常会为所有内容返回 true。
推荐阅读
- javascript - Text Tag React Native 中的函数
- kubernetes - “kubeadm upgrade apply v1.18.0-00”好像没有升级主节点
- python - 使用精灵表无法到达任何地方。我看过很多教程并在这里阅读
- c# - 如何在 .NET Core (C#) 中将此 SQL 查询编写为 LINQ 语句?
- c# - 当通过网络接收的数据更改属性时,如何将控件绑定到属性更改?
- vagrant - QEMU、KVM、Libvirt 有什么区别,如何配合 Vagrant 使用?这三个需要一起工作吗?
- c++ - WinAPI 如何移动窗口内容?
- node.js - 使用 tsconfig-paths-webpack-plugin 为“fs”和其他标准模块提供“Module not found”错误
- node.js - 使用 PM2 在端口 80 上运行的节点服务器错误
- r - R中的循环或函数,用于具有相似变量的多个分析