C #. Selenium. Регулярное выражение в элементе поиска

#c# #regex #selenium #webdriver

#c# #регулярное выражение #selenium #webdriver

Вопрос:

Возможно ли использовать регулярные выражения или какую-либо функцию «содержать» в WebDriver.FindElement() ?

например, у меня есть элемент с XPath, подобный этому

 //html//body//form//table//tbody//tr//td//a[@href='view.php?id=']
  

и id является случайным числом, подобным view.php?id=132548

Ответ №1:

Вы можете использовать регулярные выражения в CSS-селекторах,

 WebElement element = driver.findElement(By.cssSelector("E[foo^='bar']"));  

E[foo="bar"]    an E element whose "foo" attribute value is exactly equal to "bar"
E[foo~="bar"]   an E element whose "foo" attribute value is a list of whitespace-separated values, one of which is exactly equal to "bar"
E[foo^="bar"]   an E element whose "foo" attribute value begins exactly with the string "bar"   
E[foo$="bar"]   an E element whose "foo" attribute value ends exactly with the string "bar" 
E[foo*="bar"]   an E element whose "foo" attribute value contains the substring "bar"
  

Комментарии:

1. 1, но это не регулярные выражения. Хотя на это явно влияет regex, этот синтаксис принадлежит только CSS.

Ответ №2:

Используйте функцию contain в XPath

 //html//body//form//table//tbody//tr//td//a[contains(@href,'view.php?id=')]
  

Ответ №3:

Я не уверен, но я думаю, что регулярное выражение не поддерживается в Selenium 2