Как извлечь теги с контентом, имеющим определенную подстроку, с помощью селекторов CSS? - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть следующий HTML:

<tr bgcolor="#DEDEDE">
    <td>
        <b>OK:Have idea</b>
    </td>
    <td>
        <b>KO:Write code</b>
    </td>
    <td>
        <b>KO:Run code</b>
    </td>
    <td>
        <b>KO:Debug code</b>
    </td>
</tr>

Я хочу извлечь следующее:

<b>KO:Write code</b>
<b>KO:Run code</b>
<b>KO:Debug code</b>

По подстроке KO:.Как мне сделать это с помощью выражений селектора CSS?

1 Ответ

2 голосов
/ 26 сентября 2011

Вы можете использовать :contains(), который был удален из спецификации CSS3 , но реализован в Selenium:

WebDriver.findElements(By.cssSelector("td b:contains('KO:')"));

Не существует эквивалентного псевдокласса для начала или конца-с тем не менее, так что :contains() является самым дальним, вы можете пойти с локатором CSS.Если вам нужно фильтровать только начиная с подстроки KO:, вы должны использовать локатор XPath:

WebDriver.findElements(By.xpath("//td/b[starts-with(text(), 'KO:')]"));
...