_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/