我目前正在学习硒。我试图模拟来自网址“ https://worldpopulationreview.com/countries/countries-by-gdp/#worldCountries”的csv文件的按钮单击。
我做了:
Right click the csv icon
Inspect and copy the full xpath
然后,我使用以下代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
driver = webdriver.Chrome()
url = 'https://worldpopulationreview.com/countries/countries-by-gdp'
driver.get(url)
xpath = '/html/body/div[1]/div/div[1]/div[2]/div[2]/div[1]/div/div/div/div[2]/div[1]/a[2]'
btn = driver.find_element_by_xpath(xpath)
btn.click()
# df = pd.read_csv(os.path.expanduser('~/Downloads/data.csv'))
# print(df.head())
# driver.close()
WebDriverException: Message: unknown error: Element <a>...</a> is not clickable at point (1070, 879). Other element would receive the click: <div id="google_ads_iframe_/15184186/worldpopulationreview_adhesion_0__container__" style="border: 0pt none;">...</div>
(Session info: chrome=85.0.4183.121)
(Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.15.7 x86_64)
我尝试使用不同的xpath进行多次尝试,但无济于事。如何模拟该特定网站的按钮点击?
有时,如果有障碍物,硒将无法单击元素。在这种情况下,您可以使用javascript。但是首先,我将等待元素可单击。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import os
driver = webdriver.Chrome()
url = 'https://worldpopulationreview.com/countries/countries-by-gdp'
driver.get(url)
xpath = '/html/body/div[1]/div/div[1]/div[2]/div[2]/div[1]/div/div/div/div[2]/div[1]/a[2]'
# btn = driver.find_element_by_xpath(xpath)
btn = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//a[@download='csvData.csv']")))
driver.execute_script("arguments[0].click();", btn)
# btn.click()
# df = pd.read_csv(os.path.expanduser('~/Downloads/data.csv'))
# print(df.head())
# driver.close()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句