c# - Selenium WebDriver IE 性能

标签 c# selenium selenium-webdriver css-selectors

_driver.FindElement(By.CssSelector("[id='3_NewSiteMaintenanceButton']"));

=15.0s


_driver.FindElement(By.CssSelector("[id$='NewSiteMaintenanceButton']"));

=18.4s


_driver.FindElement(By.CssSelector("#3_NewSiteMaintenanceButton"));

NoSuchElementException : Unable to find element with css selector == #3_NewSiteMaintenanceButton


_driver.FindElement(By.Id("3_NewSiteMaintenanceButton"));

=12.58s


Chrome 和 FireFox 分别在 4 秒和 6 秒 内完成了整个测试,而 IE 需要 12-18 秒 才能找到单个 DOM 元素。为什么 IE 这么慢,我该如何提高性能?

最佳答案

ID 选择器不能以数字开头,因为 a CSS identifier cannot begin with a digit .如果您没有在属性选择器中引用该值,它们都会因同样的原因而失败(尽管奇怪的是它会导致 NoSuchElementException 而不是其他东西,因为从技术上讲选择器是无效的)。

要使用 ID 选择器,您需要转义初始数字。如果数字来自变量,您仍然可以单独转义它,只需将转义符紧跟在散列之后:

_driver.FindElement(By.CssSelector("#\\" + prefex + "_NewSiteMaintenanceButton"));

关于c# - Selenium WebDriver IE 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28198198/

相关文章:

c# AspNetCore WebApi - 如何判断 PUT 上是否设置了 json 属性?

c# - 基于多个字段对对象进行排名

c# - Web API 中的模型验证 - 在没有 throw 语句的情况下抛出异常?

java - 如何使用 java selenium 重构按钮 webElement?

java - 如何在 Selenium 中获取 WebElement 的 HTML 代码

selenium - 使用 Selenium Web Driver 测试动态加载的内容

c# - 使用 NSubstitute 的单元测试无效方法

java - 父子项目maven

python - Selenium Python 最大化 Chrome 浏览器窗口大小以使其适合使用屏幕大小

java - 我们可以使用 java 和 selenium webdriver 单击一个与某些图像/按钮重叠的按钮吗?