尝试使用 Selenium 发布 image/video 推文时出现问题
Issue trying to tweet an image/video using Selenium
我正在尝试使用 Selenium、Chromedriver 和 Python 制作一个 Twitter 机器人。目前我可以登录并访问我的时间线,但我不知道如何发推 image/video。我可以完美地发布推文文本,但无法为 image/video.
这样做
我当前的代码是:
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,第二个是单击推文按钮。当前的错误是,当我尝试搜索要上传文件的元素时,找不到它并超时。我怎样才能上传 image/video?
要上传图片或视频,您应该将该图片/视频文件路径发送到输入文件。
假设您要上传位于您计算机上的以下路径中的图像:
“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)
就是这样,不需要任何额外的点击等
我正在尝试使用 Selenium、Chromedriver 和 Python 制作一个 Twitter 机器人。目前我可以登录并访问我的时间线,但我不知道如何发推 image/video。我可以完美地发布推文文本,但无法为 image/video.
这样做我当前的代码是:
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,第二个是单击推文按钮。当前的错误是,当我尝试搜索要上传文件的元素时,找不到它并超时。我怎样才能上传 image/video?
要上传图片或视频,您应该将该图片/视频文件路径发送到输入文件。
假设您要上传位于您计算机上的以下路径中的图像:
“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)
就是这样,不需要任何额外的点击等