【问题标题】:Selenium interact with Google DriveSelenium 与 Google Drive 交互
【发布时间】:2021-12-13 17:27:03
【问题描述】:

我目前正在使用 Selenium 自动从公共 Google Drive 文件夹下载文件。

我使用 browser.find_element(By.CLASS_NAME, "akerZd").click() ,但它只是打开带有驱动器页面的浏览器,之后不执行任何操作。 (“akerZd”是文件夹上的小下载按钮类的名称)

我的代码:

from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome("C:\\chromedriver\\chromedriver.exe")
browser.get('https://drive.google.com/drive/folders/1mOGQW__azsRkJI-l4vFjcxwYO5DC8uEA')
element = browser.find_element(By.CLASS_NAME, "akerZd")
element.click()

我该如何解决这个问题? 祝你有美好的一天。

【问题讨论】:

    标签: python selenium


    【解决方案1】:
    wait=WebDriverWait(driver,10)
    driver.get('https://drive.google.com/drive/folders/1mOGQW__azsRkJI-l4vFjcxwYO5DC8uEA')
    wait.until(EC.presence_of_element_located((By.CLASS_NAME,"akerZd"))).click()
    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button[name='ok']"))).click()
    

    要简单地下载该文件,请等待元素可点击并引发点击。我还建议不要使用该类名并使用另一个标识符,因为它可能是动态的并且会发生变化。如果您知道要获取哪些文件,这也可以。

    //div[.='NHV-BOOT-2021-800-STANDARD-ISO.zip']/preceding::div[@aria-label='Download' and @role='link'][1]
    

    进口:

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

    【讨论】:

    • 不知何故我们不能避免索引[1]
    • //div[.='NHV-BOOT-2021-800-STANDARD-ISO.zip']/ancestor::div[@role='gridcell']//div[@aria- label='Download' 和 @role='link'] 如果需要,您可以使用它。
    猜你喜欢
    • 1970-01-01
    • 2013-08-17
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多