FindElementByCss
обычно быстрее, если не используется IE, и затем это зависит от того, какая версия IE и какой тип обхода требуются.
Повторные тесты доказали, что FindElementByCss
более производительный, чем FindElementByXPath
(Примечание: если присутствует уникальный идентификатор, тогда выбор по идентификатору всегда является первым выбором!)
In тесты с тестом Chrome
и FireFox
видел более быстрое сопоставление с использованием CSS последовательно по различным путям обхода.Они оптимизированы с учетом CSS, а использование селекторов CSS рассматривается как лучший метод селена .IE
был более изменчивым, в большинстве случаев XPath
был немного более производительным, но были некоторые четкие пути, которые благоприятствовали выбору CSS
.Длинные XPath-селекторы будут дорогостоящими и склонными к поломкам.Более поздние версии IE
видели больше изменчивости.Браузер Opera12
пришел со смешанными результатами.
Я бы использовал селектор CSS:
Итак, для простого выбора, основанного на вероятном уникальном атрибуте,Я бы пошел с атрибутом CSS селектор [value='8897']
для цели value
атрибут.[]
означает селектор атрибута.Так что атрибут value
со значением 8897
.
driver.FindElementByCss("[value='8897']").Click
Если вы хотите быть более избирательным, вы можете добавить дополнительный селектор атрибута, как показано ниже, для назначения атрибута type
.
driver.FindElementByCss("[type=checkbox][value='8897']").Click
Когда мне тогда использовать XPath?
Более старые версии IE наверняка.
Любое требование для поднятия DOM будет указывать на использование XPath.
В XPath есть несколько замечательных дополнительных стратегий локатора для трудно найти элементы, но это не является обязательным AFAIK здесь.Вы можете увидеть некоторые дополнительные соображения здесь .