我有以下HTML代码。 列表中的项目按随机顺序生成:
<ul class="list">
<li>
One
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal0" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Two
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal1" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Three
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal2" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Four
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal3" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Five
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal4" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Six
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal5" class="btn btn--default btn--s">Send</a>
</span>
</li>
<li>
Seven
<span class="btn-wrap">
<a href="#" data-target-modal="CustomIdForEachModal6" class="btn btn--default btn--s">Send</a>
</span>
</li>
</ul>
我想点击&#34;发送&#34;具有文本&#34;五&#34;。
的按钮我试过了:
element = $driver.find_elements(css: 'li').select {|el| el.text == 'Five'}.first
element.click
并且:
$driver.find_element(xpath: /a[contains(text(),'Five').click
我一直在尝试使用selenium webdriver,但无法使用它。任何帮助表示赞赏。
答案 0 :(得分:0)
您使用的xpath
不准确。尝试
$driver.find_element(xpath: "//li[contains(text(),'Five')]//a").click
您也可以尝试显式等待以确保按钮存在
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
button = wait.until { driver.find_element(:xpath => "//li[contains(text(),'Five')]//a") }
button.click
答案 1 :(得分:0)
使用以下xpath
-
.//li[contains(.,'Five')]/span/a[text()='Send']