Python Selenium文件上载url“;路径不是绝对的”;

Python Selenium文件上载url“;路径不是绝对的”;,python,selenium,webdriver,selenium-chromedriver,Python,Selenium,Webdriver,Selenium Chromedriver,我正试图用selenium chromedriver将一个文件上传到facebook群组 driver.find_element_by_xpath("//input[@type='file']").send_keys("http://www.peta.org/wp-content/uploads/2013/10/goat_2D00_list_2D00_1.jpg") 但它抛出了这样一个异常: selenium.common.exceptions.WebDriverException:消息:未知

我正试图用selenium chromedriver将一个文件上传到facebook群组

driver.find_element_by_xpath("//input[@type='file']").send_keys("http://www.peta.org/wp-content/uploads/2013/10/goat_2D00_list_2D00_1.jpg")
但它抛出了这样一个异常:

selenium.common.exceptions.WebDriverException:消息:未知错误: 路径不是绝对的:

我使用的是Windows10,Chrome44.0.2403.130,ChromeDriver 2.16.333243,selenium 2.47.1


那么我如何从URL上传图像呢?(无需明确下载)

不,这样您只能从本地计算机上载文件:

先下载图片,然后上传。例如:

使用urllib

import os
import urllib

base_dir = "/Path/to/dir/"
path_to_image = os.path.join(base_dir, "upload.jpg")

urllib.urlretrieve("http://www.peta.org/wp-content/uploads/2013/10/goat_2D00_list_2D00_1.jpg", path_to_image)

driver.find_element_by_xpath("//input[@type='file']").send_keys(path_to_image)
有请求时

import os
import requests

base_dir = "/Path/to/dir/"
path_to_image = os.path.join(base_dir, "upload.jpg")

response = requests.get("http://www.peta.org/wp-content/uploads/2013/10/goat_2D00_list_2D00_1.jpg")

if response.status_code == 200:
    f = open(base_dir + path_to_image, 'wb')
    f.write(response.content)
    f.close()

使用完整路径,如
“C:\\Users\\Casper\\Desktop\\hello.jpg”
,而不是
“hello.jpg”

很遗憾,如果不下载,这是不可能的:(谢谢你的回答。我已经编辑了它,添加了一个请求片段,希望你喜欢!
import os
import requests

base_dir = "/Path/to/dir/"
path_to_image = os.path.join(base_dir, "upload.jpg")

response = requests.get("http://www.peta.org/wp-content/uploads/2013/10/goat_2D00_list_2D00_1.jpg")

if response.status_code == 200:
    f = open(base_dir + path_to_image, 'wb')
    f.write(response.content)
    f.close()