2015-08-19 2 views
1

Я делаю автоматизацию тестирования с помощью Selenium и обычно использую селектора css для поиска элементов. Недавно, однако, я столкнулся с какой-то странной проблемой. Я заметил, что в некоторых случаях селектор css отлично работает, когда я тестирую в консоли браузера. Например, чтобы выбрать конкретную кнопку из многих, я:css селектор работает в браузере, но не в Selenium

(1) $("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')") 

Но когда я использую в селене он возвращает ошибку:

Caused by: org.openqa.selenium.InvalidSelectorException: The given selector div.v-app[id^='v-discussions'] .v-button-caption:contains('Add') is either invalid or does not result in a WebElement. The following error occurred: 
InvalidSelectorError: An invalid or illegal selector was specified 

Я также попробовал эту строку с querySelector и I получить ошибку «Незаконная строка»:

(2) document.querySelectorAll("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')") 

Почему это может случиться?

P.S.

Это, как каждый из элементов выглядит следующим образом:

<span class="v-button-caption">Add Comment</span> 
+0

Вы используете чистый webdriverjs или транспортир? Благодарю. – alecxe

+0

@alecxe Привет, нет Я использую FirefoxDriver. Спасибо. –

+0

Попробуйте без ': содержит' – Tushar

ответ

0

Ну пойти:

WebElement element = driver.findElement(By.className("v-button-caption")); 

Я использую его в Selenium WebDriver и отлично работает для меня

+0

Пожалуйста, снова прочитайте вопрос. В моем случае это не один элемент, который я пытаюсь найти, а выбрать конкретный элемент из списка элементов. –

+0

для всех селекторов, которые вы можете использовать этот метод, и эта команда делает то же, что вы говорите, он выбирает определенный элемент из группы элементов на странице .. каждый элемент имеет свой собственный уникальный и уникальный идентификатор и тем самым он выбирается –

Смежные вопросы