当前位置: 首页 > news >正文

WebDriver——》页面弹窗、鼠标键盘、显示等待、截图操作

1、页面弹窗

alert:只有确定按钮

alert = driver.find_element('xpath','//input[@onclick = "myalert()"]') alert.click() tc = driver.switch_to.alert #进入弹窗 tc.accept() #点击确定

prompt:弹窗可以输入文本,有确定、取消按钮

prompt = driver.find_element('xpath','//input[@onclick = "myprompt()"]') prompt.click() tc = driver.switch_to.alert #进入弹窗 tc.send_keys("弹窗文本输入") tc.accept() #点击确定

confirm:弹窗有哦确定、取消按钮

confirm = driver.find_element('xpath','//input[@onclick = "myconfirm()"]') confirm.click() tc = driver.switch_to.alert #进入弹窗 tc.accept() #点击确定 tc.dismiss() #点击取消

2、鼠标、键盘操作

常用的上传文件,系统弹窗选择文件页面无法定位,需要鼠标键盘操作,只支持英文名的文件

安装库:pip install pyuserinput -i https://pypi.tuna.tsinghua.edu.cn/simple
#导库: from pykeyboard import PyKeyboard from selenium.webdriver import ActionChains #获取文件上传的按钮元素 fileupload_element = driver.find_element('id','file') #滚动页面,把元素滑动到页面可见范围之内 fileupload_element.location_once_scrolled_into_view #点击文件上传 #fileupload_element.click() 默认的点击不生效,用ActionChains解决点击不生效的问题 ActionChains(driver).click(fileupload_element).perform() #等待文件选择弹窗 time.sleep(2) #输入文件路径,选择系统输入法为英文 keyboard = PyKeyboard() keyboard.type_string(r"d:\test.xlsx") #确认输入,按回车键 keyboard.press_keys([keyboard.enter_key])

3、显示等待

timeout=5 最大等待时间5s poll_frequency=0.5s 每0.5s调用一次method方法,自动默认0.5s,可不填写 message="元素不存在" 如果前面的条件不成立,就抛异常提示message
#导库: from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC #等待元素可见 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.visibility_of_element_located(('id','百度')),message="元素不可见") #等待元素不可见 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until_not(method=EC.visibility_of_element_located(('id','百度')),message="元素可见") #等待元素可点击 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.element_to_be_clickable(('id','百度')),message="元素不可点击") #等待页面标题 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.title_contains(('搜索结果')),message="搜索结果为空") #等待元素加载完成 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.presence_of_all_elements_located(('id','百度')),message="元素加载未完成")

4、屏幕截图(页面如果有弹窗会报错)

#保存成图片 driver.get_screenshot_as_file('img/screeshot.png') #返回图片二进制 driver.get_screenshot_as_png() #返回图片base64 driver.get_screenshot_as_base64()

解决方案:

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

#导库 from PIL import ImageGrab ImageGrab.grab().save("img/PIL_screeshot.png")
http://www.jsqmd.com/news/234953/

相关文章:

  • 如何在移动端高效部署大模型?AutoGLM-Phone-9B实践指南
  • 今年有想法参加护网的同学必看!!!新手如何参加护网行动!(非常详细),从零基础入门到精通,看完这一篇就够了!
  • 如何高效实现中文语义匹配?GTE轻量级镜像一键启动方案
  • 移动端多模态AI落地新思路|AutoGLM-Phone-9B技术深度拆解
  • 采购、供应商、订单三条线怎么打通?用一张流程图讲透协同逻辑
  • CTF之逆向Reverse入门推荐学习知识点总结面向新手小白
  • 【研知有术论文发表】非常好投的医学三区SCI期刊推荐,国人友好,录用容易
  • 基于DP_MPC算法的氢能源动力无人机能量管理 背景:随着氢燃料的开发,氢能源被应用到许多领域...
  • MapReduce 实战详解:学生成绩统计案例
  • WBS / 项目编码与项目 / 模板的关联操作(核心在 OPSA + 模板配置)
  • 从零部署AutoGLM-Phone-9B|移动端90亿参数模型运行全步骤
  • 电商抠图效率翻倍|使用CV-UNet大模型镜像实现自动化处理
  • 导师不会说的9款AI论文神器,巨鲸写作半天搞定全文!
  • C# XML文件读取软件:支持自由定位与蛇形走位,主要应用于晶圆图谱识别
  • NPP 草原:Taullgarnsnaset,瑞典,1968-1969,R1
  • matlab仿真程序,二阶MASs,事件触发机制 这段代码是一个带有领导者的二阶多智能体的领导...
  • 如何高效做中文情绪识别?试试这款轻量级CPU友好型大模型镜像
  • 2026最新CTF知识点网址汇总大全,零基础入门到精通,收藏这篇就够了
  • 高精度中文文本匹配方案|基于GTE模型的WebUI与API双支持
  • 高效中文情绪识别方案|CPU版大模型镜像一键启动
  • 在 SAP 系统中,寄售业务(Consignment) 和管道业务(Pipeline) 均属于供应商库存管理(Vendor-Managed Inventory, VMI) 范畴
  • 中文情感分析实战|基于StructBERT大模型镜像快速部署
  • 语义相似度服务零报错部署|基于GTE-Base模型的WebUI可视化方案
  • 高精度中文语义计算方案|GTE模型镜像实现低延迟相似度推理
  • 2026年安徽省职业院校技能大赛(中职组) 电子数据取证技术与应用赛项规程
  • sap中 为什么 rz11 修改了 rdisp/gui_auto_logout 当次有用,当sap服务器重新启动后 系统又该回原值了?
  • 如何精准提取PDF公式与表格?试试科哥开发的PDF-Extract-Kit镜像
  • 具身新形态
  • 中文语义相似度计算实战|基于GTE大模型镜像快速搭建WebUI工具
  • 2026年安徽省职业院校技能大赛(中职组) 电子数据取证技术与应用赛项样题任务书