在Alibaba.com搜索栏中通过Selenium上传图像

时间:2019-10-22 15:39:39

标签: python selenium file-upload

我正在尝试通过send_keys上传图像以进行www.alibaba.com图像搜索。我想在无头浏览器中执行此操作,因此Autoit方法将不起作用。

“上传按钮”是可单击的,但可以获取send_keys数据。

    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)

我收到消息 ElementNotInteractableException

Upload Button DOM

在没有打开文件系统弹出窗口的情况下,还有其他上传图像的方法吗?

1 个答案:

答案 0 :(得分:0)

您将需要使用input元素而不是type='file'按钮将密钥发送到Upload Imageinput也被隐藏,因此您需要执行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)