我正在尝试通过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
在没有打开文件系统弹出窗口的情况下,还有其他上传图像的方法吗?
答案 0 :(得分:0)
您将需要使用input
元素而不是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)