Python Selenium:根据span标签内的文本单击按钮

Joh*_*hnB 6 python selenium web-scraping

我想在 <Span 文本为“确定”时单击此按钮:

\n
<button type="button" class="ant-btn ant-btn-primary" style="float: right;"><span>OK</span></button>\n
Run Code Online (Sandbox Code Playgroud)\n

解决方案是这样的(此代码不起作用,因为它\xc2\xb4s不可点击):

\n
driver.find_element_by_xpath(\'//span[text()="OK"]\').click()\n
Run Code Online (Sandbox Code Playgroud)\n

我找到了一种可行的方法,但我可以 \xc2\xb4t 保证 Span 内的文本是“OK”:

\n
button =  driver.find_element_by_css_selector(\'#root > section > section > div.ant-row > div:nth-child(2) > div.ant-spin-nested-loading > div > div > div > div > div.ant-collapse-content.ant-collapse-content-active > div > div > div > div:nth-child(17) > button.ant-btn.ant-btn-primary\')\nbutton.click()\n
Run Code Online (Sandbox Code Playgroud)\n

如何点击基于 Span 标签的按钮?

\n

编辑:\n按钮代码行

\n

Zvj*_*vic 11

所以,根据你的按钮HTML

<button type="button" class="ant-btn ant-btn-primary" style="float: right;"><span>OK</span></button>
Run Code Online (Sandbox Code Playgroud)

我认为以下内容xapth会对您有所帮助。

//button[contains(@class, 'ant-btn-primary')]//*[contains(., 'OK')]/..
Run Code Online (Sandbox Code Playgroud)

帮助/..您返回 1 级;将您带到主按钮。
为了在 中搜索“OK”文本span,您需要使用node/ 句点搜索。这就是我这样做的原因//*[contains(., 'OK')]

要找到此按钮然后单击它,您将执行以下操作

driver.find_element(By.XPATH, "//button[contains(@class, 'ant-btn-primary')]//*[contains(., 'OK')]/..").click()
Run Code Online (Sandbox Code Playgroud)

备用 XPATH

//button[contains(@class, 'ant-btn-primary') and contains(., 'OK')]
Run Code Online (Sandbox Code Playgroud)

你会点击按钮

driver.find_element(By.XPATH, "//button[contains(@class, 'ant-btn-primary') and contains(., 'OK')]").click()
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢!两种解决方案都有效。我喜欢你对“/..”的解释,它成功了。 (3认同)