selenium使用问题

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点击和获取焦点都不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值