【问题标题】:Issue trying to tweet an image/video using Selenium尝试使用 Selenium 发布图像/视频的问题
【发布时间】:2021-08-25 20:02:27
【问题描述】:

我正在尝试使用 Selenium、Chromedriver 和 Python 制作一个 twitter 机器人。目前我可以登录并到达我的时间线,但我无法弄清楚如何发布图像/视频。我可以很好地发推文,但无法为图像/视频这样做。

我当前的代码是:

driver.get(WEBSITE)
element = wait.until(EC.visibility_of_element_located((By.XPATH, '/html/body/div/div/div/div[2]/main/div/div/div/div/div/div[2]/div/div[2]/div[1]/div/div/div/div[2]/div[3]/div/div/div[1]/input')))
element.send_keys(os.getcwd() + "/downloads/image.jpg")
element = wait.until(EC.element_to_be_clickable((By.XPATH, '/html/body/div/div/div/div[2]/main/div/div/div/div/div/div[2]/div/div[2]/div[1]/div/div/div/div[2]/div[3]/div/div/div[2]/div[3]/div/span/span')))
element.click()

我首先尝试找到输入 XPATH,第二个是单击推文按钮。当前的错误是,当我尝试搜索要上传文件的元素时,无法找到它并超时。如何获取上传的图片/视频?

【问题讨论】:

    标签: python selenium twitter selenium-chromedriver


    【解决方案1】:

    要上传图片或视频,您应该将该图片/视频文件路径发送到输入文件。
    假设您要上传位于您计算机上的以下路径中的图像: "C:\Users\you_name\Downloads\IMG_20180906_184135.jpg" 发送此路径的输入元素位于 twitter 主页上,通过以下 XPath "//input[@accept]",因此要上传此文件,您可以执行以下操作:

    driver.get(WEBSITE)
    input_xpath = "//input[@accept]"
    image_path = "C:\Users\you_name\Downloads\IMG_20180906_184135.jpg"
    input_element = wait.until(EC.presence_of_element_located((By.XPATH, input_xpath)))
    input_element.send_keys(image_path)
    

    就是这样,不需要任何额外的点击等。

    【讨论】:

    • 我会试试这个并更新你。你能告诉我你是怎么找到那个 xpath 的吗?
    • 当然。我知道这是一个输入元素。通常位于用户点击上传文件的元素附近。我搜索了该特定页面并找到了它。你可以自己看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2022-11-01
    • 1970-01-01
    相关资源
    最近更新 更多