Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试使用Selenium在推特上发送图像/视频时出现问题_Python_Selenium_Twitter_Selenium Chromedriver - Fatal编程技术网

Python 尝试使用Selenium在推特上发送图像/视频时出现问题

Python 尝试使用Selenium在推特上发送图像/视频时出现问题,python,selenium,twitter,selenium-chromedriver,Python,Selenium,Twitter,Selenium Chromedriver,我正在尝试使用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/

我正在尝试使用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,然后单击tweet按钮。当前的错误是,当我尝试搜索要上载文件的元素时,它无法找到该元素并超时。如何上传图像/视频?

要上传图像或视频,应将该图像/视频文件路径发送到输入文件。
假设您希望通过以下路径上载位于计算机上的图像: “C:\Users\you\u name\Downloads\IMG\u 20180906\u 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)

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

要上载图像或视频,您应该将该图像/视频文件路径发送到输入文件。
假设您希望通过以下路径上载位于计算机上的图像: “C:\Users\you\u name\Downloads\IMG\u 20180906\u 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的吗?当然。我知道这是一个输入元素。通常位于元素附近,用户单击以上载文件。我搜索了那个特定的页面,找到了它。你自己也可以看到,它成功了!非常感谢。我会试试这个并告诉你最新情况。你能告诉我你是怎么找到xpath的吗?当然。我知道这是一个输入元素。通常位于元素附近,用户单击以上载文件。我搜索了那个特定的页面,找到了它。你自己也可以看到,它成功了!非常感谢。