Каковы некоторые хорошие способы извлечения определенного элемента в WebDriver/Selenium2, основанного только на тексте внутри элемента?Получить конкретный элемент в webdriver, содержащий текст
<div class="page">
<ul id="list">
<li>Apple</li>
<li>Orange</li>
<li>Banana</li>
<li>Grape</li>
</ul>
</div>
По сути, я хотел бы написать что-то вроде этого, чтобы получить определенный элемент:
@driver.find_element(:id, "list").find_element(:text, "Orange")
Это очень похоже на то, как я хотел бы использовать селектор при нахождении текста внутри ссылки (т.е. :link_text
или :partial_link_text
), но я хотел бы найти элементы по тексту внутри обычных, не связанных элементов.
Любые предложения? Как вы справляетесь с этой проблемой? (Если вам интересно, я использую Ruby.)
Спасибо. Предпочитаю не использовать xpath вообще, но все же, спасибо за отличный ответ! – bbbco
Не знал, что вы можете связать 'find_element', я предполагаю, что он ищет только дочерние элементы первого элемента ... nice. ;) – erroric
Да, вызов find_element в драйвере начинается с корня, а вызов этого элемента начинается с этого элемента. Я думаю, что XPath мог бы переопределить это (поэтому, если «.» Не был в начале XPath, он все равно может начинаться с корня документа по указанию //), но я точно не помню, как правильно Теперь. –