2023/8/31
今天用selenium的时候遇到了很奇葩的问题,点击某个元素,会有弹框。有且只有浏览器页面展示的时候才会获取到弹框元素,哪怕我鼠标指向任务栏的谷歌浏览器弹出了个小窗口,它也能获取到弹框元素,就很迷惑
2023/9/9
换个思路解决了,当时的问题是使用sendkey设置input内容不打开浏览器无法定位到input,但是用js可以,使用js的问题就是无法触发下拉框弹出事件,所以
driver.execute_script("arguments[0].value = arguments[1];arguments[0].dispatchEvent(new Event('input'));", element,value)
手动分配输入事件
新问题
某些网站没有input文件上传,发送图片只能复制图片再粘贴到contenteditable类型的div当中,以下是添加图片到剪切板和粘贴图片到元素的方法
def copyImg(image_path):
image = Image.open(image_path)
output = BytesIO()
image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data)
win32clipboard.CloseClipboard()
def pasteImg(driver, element):
clipboard_image_path = "123123.png"
pyperclip_image = pyperclip.paste()
with open(clipboard_image_path, 'wb') as file:
file.write(base64.b64decode(pyperclip_image))
# 将图片粘贴到div中
element.click() # 先让div获取焦点
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
同样的问题,不打开浏览器无法进行点击和粘贴操作,js点击和获取焦点都不行
2856

被折叠的 条评论
为什么被折叠?



