无法使用 selenium 定位元素 (Python)
Unable to locate element using selenium (Python)
我一直试图通过点击找到一个按钮,但无论我怎样尝试都无法找到它。我已尝试使用所有 driver.find_element_by...
方法,但似乎没有任何效果
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="/Users/shreygupta/Documents/ComputerScience/PythonLanguage/Automation/corona/chromedriver")
driver.get("https://ourworldindata.org/coronavirus")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
我正在尝试单击下面屏幕截图中的“数据”选项卡
这是您可以使用的逻辑,其中脚本将为 Data
菜单项等待最多 30 个,如果该元素在 30 秒内出现,它将单击该元素。
url = "https://ourworldindata.org/grapher/covid-confirmed-cases-since-100th-case"
driver.get(url)
driver.maximize_window()
wait = WebDriverWait(driver,30)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"a[data-track-note='chart-click-data']"))).click()
您可以修改脚本以直接打开此图:
driver.get("https://ourworldindata.org/grapher/total-cases-covid-19")
driver.maximize_window()
然后您可以添加 implicitly_wait
而不是 sleep
。隐式等待告诉 WebDriver 在尝试查找任何不立即可用的元素 (from python documentation) 时轮询 DOM 一段时间。它会工作得更快,因为它会在找到元素后立即与它交互。
driver.implicitly_wait(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
希望这对您有所帮助,祝您好运。
我一直试图通过点击找到一个按钮,但无论我怎样尝试都无法找到它。我已尝试使用所有 driver.find_element_by...
方法,但似乎没有任何效果
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="/Users/shreygupta/Documents/ComputerScience/PythonLanguage/Automation/corona/chromedriver")
driver.get("https://ourworldindata.org/coronavirus")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
我正在尝试单击下面屏幕截图中的“数据”选项卡
这是您可以使用的逻辑,其中脚本将为 Data
菜单项等待最多 30 个,如果该元素在 30 秒内出现,它将单击该元素。
url = "https://ourworldindata.org/grapher/covid-confirmed-cases-since-100th-case"
driver.get(url)
driver.maximize_window()
wait = WebDriverWait(driver,30)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"a[data-track-note='chart-click-data']"))).click()
您可以修改脚本以直接打开此图:
driver.get("https://ourworldindata.org/grapher/total-cases-covid-19")
driver.maximize_window()
然后您可以添加 implicitly_wait
而不是 sleep
。隐式等待告诉 WebDriver 在尝试查找任何不立即可用的元素 (from python documentation) 时轮询 DOM 一段时间。它会工作得更快,因为它会在找到元素后立即与它交互。
driver.implicitly_wait(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
希望这对您有所帮助,祝您好运。