【发布时间】:2020-04-15 23:50:30
【问题描述】:
我正在尝试使用 python 和 selenium 从网页中的几个单选按钮中选择一个特定的单选按钮。幸运的是,我要选择的单选按钮确实关联了特定的文本,这应该让我更容易选择。不幸的是,我错过了一些东西,因为所有尝试都出错了。下面是 HTML 代码,我尝试过的,以及我想要实现的。
HTML
<div data-a-input-name="slotsRadioGroup" class="a-radio a-radio-fancy slotButtonRadio"><label><input type="radio" name="slotsRadioGroup" value="" autocomplete="off"><i class="a-icon a-icon-radio"></i><span class="a-label a-radio-label">
<span class="slotRadioLabel">
5PM - 7PM
</span>
<div class="a-row">
<span class="a-size-small slot-button-micro-copy preselected-visible">
Soonest available time with all items.
</span>
</div>
</span></label></div>
</div></div>
我需要选择的单选按钮将始终显示文本“Soonest available...”。
我的尝试
我尝试了不同的 xpath 代码变体来尝试根据文本选择它。我的最后一次尝试是:
driver.find_element_by_xpath("//input[@type='radio']and following-sibling::span[contains(., 'Soonest available')").click()
这会导致以下错误:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//input[@type='radio']and following-sibling::span[contains(., 'Soonest available')' is not a valid XPath expression.
预期结果 我想要的是能够根据上面存在的文本选择特定的单选按钮。
【问题讨论】:
-
可以分享链接吗?
-
由于没有链接无法测试。看看这是否有帮助:stackoverflow.com/questions/35470171/…
-
因此,提供准确的 URL 有点困难。上述内容旨在查找仅当在 Amazon Fresh 上找到可用运输槽时才存在的元素。鉴于这种情况,这种情况很少见。但是,当文本可用时,URL 应该指向这里:amazon.com/gp/buy/shipoptionselect/handlers/…
标签: python python-3.x selenium xpath selenium-chromedriver