2015-05-22 2 views
4

Я использую Selenium для проверки веб-сайта, работает ли это, если я нахожу и элемент более чем по одному критерию? например:Использование нескольких критериев для поиска WebElement в Selenium

driverChrome.findElements(By.tagName("input").id("id_Start")); 

или

driverChrome.findElements(By.tagName("input").id("id_Start").className("blabla")); 
+0

Я тоже задавался этим вопросом и считаю его глупым, что цепочка не поддерживается. –

ответ

4

Нет, это не так. Вы не можете объединить/добавить селекторов. В любом случае это неверно. Тем не менее, вы можете написать селекторы таким образом, что будет охватывать все возможные сценарии и использовать это с findElements()

By byXpath = By.xpath("//input[(@id='id_Start') and (@class = 'blabla')]") 
List<WebElement> elements = driver.findElements(byXpath); 

Это должно вернуть вам список элементов с input тегов, имеющие именем класса blabla или idid_Start

+0

«// input [(@ id = 'id_Start') и (@class = 'blabla')]" регулярное выражение? –

+0

Это просто способ использования нескольких условий. не регулярное выражение – Saifur

+0

Где я могу узнать об этом? –

1

Селекторы CSS были бы идеальными в этом сценарии.

Ваш пример будет

By.css("input#id_start.blabla") 

Есть много информации, если вы ищете для CSS селекторов. Кроме того, при работе с классами CSS проще, чем XPath, потому что Xpath рассматривает класс как литералную строку, где CSS рассматривает его как коллекцию с разделителями пространства.