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_File Upload - Fatal编程技术网

Python 通过阿里巴巴搜索栏中的Selenium上传图像

Python 通过阿里巴巴搜索栏中的Selenium上传图像,python,selenium,file-upload,Python,Selenium,File Upload,我正试图通过发送密钥上传图片,用于www.alibaba.com图片搜索。我想在无头浏览器中执行此操作,因此,Autoit方法将不起作用 上载按钮可单击,但允许获取发送密钥数据 url = 'https://www.alibaba.com/' browser = webdriver.Chrome() browser.implicitly_wait(20) # seconds browser.get(url) element = browser.find_

我正试图通过发送密钥上传图片,用于www.alibaba.com图片搜索。我想在无头浏览器中执行此操作,因此,Autoit方法将不起作用

上载按钮可单击,但允许获取发送密钥数据

    url =  'https://www.alibaba.com/'
    browser = webdriver.Chrome()
    browser.implicitly_wait(20) # seconds
    browser.get(url)
    element = browser.find_element_by_class_name("ui-searchbar-imgsearch-icon")
    element.click()
    element2 = browser.find_element_by_class_name("upload-btn")
    path = "filepath"
    element2.send_keys(path)
我收到消息elementnotinteractiableexception


有没有其他方法可以在不打开文件系统弹出窗口的情况下上传图像

您需要使用
type='file'
元素,而不是
Upload Image
按钮,将按键发送到
input
输入
也是隐藏的,因此您需要执行Javascript来显示它,然后才能发送密钥:

url =  'https://www.alibaba.com/'
browser = webdriver.Chrome()
browser.implicitly_wait(20) # seconds
browser.get(url)
element = browser.find_element_by_class_name("ui-searchbar-imgsearch-icon")
element.click()

input = browser.find_element_by_xpath("//input[@type='file']")

# reveal the input element
browser.execute_script("arguments[0].style.display = 'block';", input)

# send keys for file path to input element
input.send_keys(path)

您不能使用selenium上载图像,请使用sikuli with selenium上载图像。(链接)这是错误的,您可以使用Selenium上传图像^@MuaazTariq很高兴听到这个答案——如果这个答案有帮助,请随意标记为您问题的解决方案,以便其他用户可以看到它对您有效。