Python Selenium:基于span标记内的文本单击按钮

Python Selenium:基于span标记内的文本单击按钮,python,selenium,web-scraping,Python,Selenium,Web Scraping,当应该没有理由使用驱动程序时,我想单击此按钮。通过xpath('//span[text()=“OK”]')查找元素。单击()不应该起作用。当您试图通过xpath获取元素时,页面可能没有完全加载,在这种情况下,您必须等待元素通过加载。因此,根据您的按钮HTML <button type="button" class="ant-btn ant-btn-primary" style="float: right;"><span

当应该没有理由使用
驱动程序时,我想单击此按钮。通过xpath('//span[text()=“OK”]')查找元素。单击()
不应该起作用。当您试图通过xpath获取元素时,页面可能没有完全加载,在这种情况下,您必须等待元素通过加载。

因此,根据您的按钮
HTML

<button type="button" class="ant-btn ant-btn-primary" style="float: right;"><span>OK</span></button>
/…
帮助您返回1层;将您发送到主按钮
要在
span
中搜索“确定”文本,需要使用
节点
/period搜索。这就是为什么我做了
/*[包含(,'OK')]

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

driver.find_element(By.XPATH, "//button[contains(@class, 'ant-btn-primary')]//*[contains(., 'OK')]/..").click()
备用XPATH

//button[contains(@class, 'ant-btn-primary') and contains(., 'OK')]
你可以按一下按钮

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

你好@NAST0R。我等了一分钟多,结果总是出错。元素ClickInterceptedException:消息:元素ClickIntercepted:元素。。。在点(771832)处不可单击。其他元素将收到单击:…可能您试图单击错误的元素,实际的可单击元素可能被包装在不可单击的元素中。感谢您的回复。查看inspect元素(),我认为按钮行是可点击的,而跨度行不是。我没有经验来检查元素,但也许我们需要在span标签“OK”上方找到按钮元素。这有道理吗?你知道怎么做吗?非常感谢。为了做到这一点,在检查时右键单击button元素:从那里可以复制其xpath以用于基于Selenium的python脚本。Hello。谢谢你的帮助,但是Zvjezdan Veselinovic的解决方案像我想要的那样工作。非常感谢!两种解决方案都奏效了。我喜欢你对“/…”的解释,它成功了。
//button[contains(@class, 'ant-btn-primary')]//*[contains(., 'OK')]/..
driver.find_element(By.XPATH, "//button[contains(@class, 'ant-btn-primary')]//*[contains(., 'OK')]/..").click()
//button[contains(@class, 'ant-btn-primary') and contains(., 'OK')]
driver.find_element(By.XPATH, "//button[contains(@class, 'ant-btn-primary') and contains(., 'OK')]").click()