Selenium 在使用 Python 时无法单击“获取数据”按钮

Posted

技术标签:

【中文标题】Selenium 在使用 Python 时无法单击“获取数据”按钮【英文标题】:Selenium not able to click on Get Data button on using Python 【发布时间】:2021-03-16 07:25:20 【问题描述】:

我正在从这个网站上抓取数据。元素在下面和geckodriver

<img class="getdata-button" style="float:right;" src="/common/images/btn-get-data.gif" id="get" onclick="document.getElementById('submitMe').click()">

但无法让 selenium 单击它甚至尝试了 xpath、id 但不是运气 是否有任何修复或解决方法来完成它?

【问题讨论】:

也可能是你要禁食硒。有一些命令可以帮助您。见doc 【参考方案1】:

要单击元素 Get Data,您可以使用以下任一Locator Strategies:

使用css_selector

driver.find_element_by_css_selector("img.getdata-button#get").click()

使用xpath

driver.find_element_by_xpath("//img[@class='getdata-button' and @id='get']").click()

理想情况下,点击您需要为WebDriverWait 诱导element_to_be_clickable() 的元素,您可以使用以下任一Locator Strategies:

使用CSS_SELECTOR:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "img.getdata-button#get"))).click()

使用XPATH

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//img[@class='getdata-button' and @id='get']"))).click()

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

【讨论】:

抱歉,它不起作用,请查看我在问题中更新的代码。如果可能,请修复我的代码【参考方案2】:

你可能应该按 id 试试

driver.find_element(By.ID, 'get').click()

【讨论】:

以上是关于Selenium 在使用 Python 时无法单击“获取数据”按钮的主要内容,如果未能解决你的问题,请参考以下文章

NoSuchElementException:消息:尝试通过 Selenium 和 Python 单击 VISA 按钮时无法找到元素

使用 Selenium 使用 Python 单击按钮

Python selenium从表中提取数据并单击

无法单击跨度Selenium Python中的单选按钮

无法单击跨度 Selenium Python 内的单选按钮

selenium.common.exceptions.ElementNotInteractableException:消息:使用 Selenium Python 单击元素时元素不可交互