OPC.Tests.SmokeTest (TestFixtureSetUp): SetUp: OpenQA.Selenium.InvalidSelectorException

Я пытаюсь использовать CssSelector для поиска элемента на моей веб-странице. Я использую драйвер Firefox.

Вот как я использую локатор (я проверил, что Selenium IDE может найти мой элемент с помощью этого

[FindsBy(How = How.CssSelector, Using = "label:contains('Version: 2.0.')")]
public IWebElement labelVersion;

Но когда используйте это в коде C# и инициализируйте его с помощью PageFactory.InitElements в моем конструкторе.

Я столкнулся с этой ошибкой... (сама ошибка довольно ясна, но я не знаю, как ее исправить)

Цените любые входные данные.

OPC.Tests.SmokeTest (TestFixtureSetUp): SetUp: OpenQA.Selenium.InvalidSelectorException: данный селектор css=label:contains('Версия: 2.0.') либо недействителен, либо не приводит к созданию веб-элемента. Произошла следующая ошибка: [Исключение... "Была указана недопустимая или недопустимая строка" код: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)" местоположение: "file:///.......... /anonymous439571104.webdriver-profile/extensions/[email protected]/components/driver_component.js Строка: 5811"]


person Kir    schedule 10.06.2012    source источник


Ответы (1)


Selenium делегирует запросы CSS браузеру. Это означает, что запросы CSS должны соответствовать стандарту CSS.

К сожалению, :contains был удален из стандарта некоторое время назад. Я рекомендую вам переделать свой селектор с тем, что доступно из spec, или использовать XPATH.

:contains работает в Selenium RC, потому что RC использует Sizzle, библиотеку поиска селекторов в jQuery, если вам интересно, почему это работает в RC, а не в WebDriver.

person AutomatedTester    schedule 10.06.2012
comment
Имеет смысл. Спасибо. Я уже прибегаю к XPath для этого, так как у меня не было времени отлаживать проблему, я подумал, что кто-то здесь знает ответ, и я был в заднице! - person Kir; 11.06.2012