Возник вопрос - при использовании локаторов в виде CSS - нужно ли думать о их совместимости с браузерами? Вопрос возник потому что тут указано что nth-child не поддерживается в IE8, но я все же попробовал запустить тест на IE8 с локатором
nth-child не поддерживается IE8, за счет того, что в то время, эта функция не была реализована.
Вы можете воспроизвести это даже в IE11 поставив эмуляцию IE8.
Внутри WebDriver для поиска элемента вызывается функция JavaScript (а точнее DOM): document.querySelector
Тем не менее, многие разработчики использую polyfill – хаки позволяющие добавить старым браузером функционал из новых версий. JavaScript это позволяет сделать.
Можете, например, в консоле браузера выполнить команду:
document.querySelector = alert;
И после каждого вызова вместо поиска селектора вы увидите сообщение с текстом селектора.
document.querySelector("a:nth-child(2)");
Я подозреваю, то на том сайте который вы тестируете как раз используется такой polyfill.
D 2015-07-29 09:26:10:984 ElementFinder.cpp(40) Element location strategy is CSS selectors, but document does not support CSS selectors. Falling back to using the Sizzle JavaScript CSS selector engine.
T 2015-07-29 09:26:10:984 ElementFinder.cpp(170) Entering ElementFinder::FindElementUsingSizzle
Т.е. используется sizzle, вместо нативной реализации. Рискну предположить, что в других версиях ИЕ будет тоже самое.
Как только всплывет (или кто-то отпишется баг-репортом, или само-собой - когда “выпилят” sizzle) - это закроют - и все вернется на круги своя.
Так что верьте лучше “табличкам”