在非公开网页上,我有以下HTML内容:
padding-right: .5em;
显示如下按钮:
我想点击那个按钮,使用selenium 3.8.0中的以下代码:
<span click.delegate="placeCurrentInjection()" style="display:flex" class="au-target" au-target-id="611">
<ui-button glyph="glyph-iclamp" small="" primary="" disabled.bind="currentPlaceDisabled"
style="width: auto; max-width: 20em;" class="au-target ui-small ui-button primary" au-target-id="612" role="button" data-value="">
<span class="ui-indicator"><!--anchor--></span>
<ui-glyph glyph.bind="glyph" class="au-target ui-icon ui-btn-icon glyph-iclamp" au-target-id="36"><!--view-->
<svg>
<use tabindex="-1" x="0" y="0" class="au-target"
au-target-id="11" xlink:href="#glyph-iclamp"></use>
</svg>
<!--anchor--></ui-glyph><!--anchor-->
<!--anchor-->
<span class="ui-label">Place current injection<!--slot--></span>
<!--anchor--></ui-button> </span>
但是,我收到以下错误:
elem = WebDriverWait(self.webdriver, time_sec).\
until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(), 'Place current injection')]")))
elem.click()
尽管实际文本没有以任何方式模糊,我可以点击它 - 如何解决这个问题?
答案 0 :(得分:1)
您找到的元素只是按钮标签上的文字。您需要单击按钮本身,这实际上是您收到的错误消息中的元素。该按钮是父元素,因此您可以通过移动到父
来使用文本来定位它(By.XPATH, "//span[contains(text(), 'Place current injection')]/..")