问题
I am scraping data from this website . The element is below and geckodriver
<img class="getdata-button" style="float:right;" src="/common/images/btn-get-data.gif" id="get" onclick="document.getElementById('submitMe').click()">
but can't get selenium to click it tried even xpath, id but not luck is there any fix or work around to get it done?
回答1:
To click on the element Get Data you can use either of the following Locator Strategies:
Using
css_selector
:driver.find_element_by_css_selector("img.getdata-button#get").click()
Using
xpath
:driver.find_element_by_xpath("//img[@class='getdata-button' and @id='get']").click()
Ideally, to click on the element you need to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following Locator Strategies:
Using
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "img.getdata-button#get"))).click()
Using
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//img[@class='getdata-button' and @id='get']"))).click()
Note: You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
回答2:
You should probably try by id
driver.find_element(By.ID, 'get').click()
来源:https://stackoverflow.com/questions/65140218/selenium-not-able-to-click-on-get-data-button-on-using-python