Selenium 在使用 Python 时无法单击“获取数据”按钮
Selenium not able to click on Get Data button on using Python
我正在从该网站抓取数据。元素在下面和 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 但不是运气
是否有任何修复或解决方法来完成它?
你或许应该通过 id
试试
driver.find_element(By.ID, 'get').click()
要单击元素 获取数据,您可以使用以下任一方法 :
使用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()
理想情况下,要单击需要为 element_to_be_clickable()
引入 WebDriverWait 的元素,您可以使用以下任一方法 :
使用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
我正在从该网站抓取数据。元素在下面和 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 但不是运气 是否有任何修复或解决方法来完成它?
你或许应该通过 id
试试driver.find_element(By.ID, 'get').click()
要单击元素 获取数据,您可以使用以下任一方法
使用
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()
理想情况下,要单击需要为 element_to_be_clickable()
引入 WebDriverWait 的元素,您可以使用以下任一方法
使用
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