Как использовать регулярные выражения между кодом селектора CSS Selenium? - PullRequest
3 голосов
/ 28 марта 2012

У меня проблемы с использованием регулярного выражения между уникальным идентификатором элемента.

Вот HTML-код

<td align="left" style="vertical-align: top; ">   
 <span class ="radiobutton"   id="mainId:gen_id_12e3:radiospan1e">      
   <input type="radio" name="radio1" value="on" id="radio1" tabindex="0" checked>       
     <label for="id-2024">Yes</label>

Используя xpath, я использовал приведенную ниже команду selenium с (. *) Между идентификатором элемента, который работает нормально.

    selenium.click("xpath=//span[@id, 'mainId.*radiospan1e']");

Однако я не могу сделать то же самое в CSS, поскольку у них есть $ для конца идентификатора, ^ для начала и * в любом месте страницы, но я хочу, чтобы идентификатор начинался с mainId с некоторым регулярным выражением и заканчивался с уникальным идентификатором.

Любая помощь будет оценена.

1 Ответ

4 голосов
/ 28 марта 2012

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

Учитывая ваш код, вы можете использовать:

selenium.click("css=span[id^='mainId'][id$='radiospan1e']");
...