【发布时间】:2015-03-27 16:53:38
【问题描述】:
_driver.FindElement(By.CssSelector("[id='3_NewSiteMaintenanceButton']"));
=15.0s
_driver.FindElement(By.CssSelector("[id$='NewSiteMaintenanceButton']"));
=18.4s
_driver.FindElement(By.CssSelector("#3_NewSiteMaintenanceButton"));
NoSuchElementException : 无法使用 css 选择器 == #3_NewSiteMaintenanceButton 找到元素
_driver.FindElement(By.Id("3_NewSiteMaintenanceButton"));
=12.58s
Chrome 和 FireFox 分别在 4 和 6 秒 内完成整个测试,而 IE 需要 12-18 秒 才能找到单个 DOM 元素。为什么 IE 这么慢,如何提高性能?
【问题讨论】:
-
使用
_driver.FindElement(By.Id(...))怎么样?对于 ID 匹配,我认为应该是最有效的? -
如果您使用 ID 匹配,则不需要
#前缀。_driver.FindElement(By.Id("3_NewSiteMaintenanceButton"));。正如@BoltClock 提到的那样,这仍然提出了关于ID 有效性的问题。 -
@shri046 这行得通!但是,是的,身份证无效
-
很高兴知道!您能否用 ID 查找的时间更新您的帖子?仅作为历史参考,作为验证将是一个不错的选择。
-
@shri046 好的,我添加了。需要12秒才能找到有ID的元素,为什么要这么久??
标签: c# selenium selenium-webdriver css-selectors