我想创建自动使用selenium上传图片的图片
使用此脚本
driver.findElement(By.id(`avatar-upload`)).sendKeys(`/home/user/Desktop/smg935-0hero-0930.jpeg`)
返回
ElementNotInteractableError: Element <input id="avatar-upload" type="file"> is not reachable by keyboard
答案 0 :(得分:1)
由于该元素不可见,因此您无法通过UI与sendKeys
之类的元素进行交互。一种方法是通过调用HTML DOM API
let upload_ele = driver.findElement(By.id('avatar-upload'))
let file_path = '/home/user/Desktop/smg935-0hero-0930.jpeg'
driver.executeScript('return arguments[0].value=arguments[1];', upload_ele, file_path)
此方法有一个缺点,因为它在后台运行,因此不会 触发绑定到元素的键/鼠标事件。如果上载小部件侦听关键事件以检测用户是否选择了文件,则在用户可以继续之前,请单击上载按钮。在这种情况下,背景方法将行不通。