仅根据元素内的文本检索WebDriver / Selenium2中的特定元素有哪些好方法?
<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。)
答案 0 :(得分:7)
你可以用xPath做到这一点。你的例子就像这样:
@driver.find_element(:id, "list").find_element(:xpath, './/*[contains(., "Orange")]')
答案 1 :(得分:3)
迟了几年,但我只是想问这个问题并回答它,以便其他人可以找到它......
我使用css选择器获取所有li元素,然后根据文本过滤数组:
@driver.find_elements(css: '#list > li').select {|el| el.text == 'Orange'}.first
然后,您可以.click
或.send_keys :return
选择该选项。