selenium处理下拉框、警告框

复制代码
         
二、警告框
   2.1 为什么要处理警告框?
      如果页面由弹出框,不处理,接下来的将不生效。
   2.2 对话框类型
      1. alert # 警告框
      2. confirm # 确认框
      3. prompt # 提示框
   
   2.3 如何处理
      以上三种对话框,处理方法都一样。
      步骤:
         1. 切换到对话框
               方法:driver.switch_to.alert
         2. 处理对话框
               alert.text # 获取文本
               alert.accept() # 同意
               alert.dismiss() # 取消
               
      提示:无论以上哪个对话框,都可以使用取消、同意,因为调用的是后台的事件,根页面显示的按钮数量无关。
      
   2.4 注意: 
      1. driver.switch_to.alert 方法适合以上三种类型对话框,调用时没有括号
      2. 获取文本的方法,调用时没有括号 如:alert.text
      3. 在项目中不是所有的小窗口都是以上三种对话框。
python 复制代码
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(30)
# 打开url
url = r"C:\Users\黄永生\Desktop\软件测试\P2C电子市场\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html"
driver.get(url)

"""
    需求:
        1. 点击 alert按钮
        2. 输入用户名 admin
"""
# 定位 alert按钮 并 点击
driver.find_element(By.CSS_SELECTOR,"#alerta").click()

# 切换 到alert
# 默认返回的alert对话框对象
at = driver.switch_to.alert

# 处理 对话框
# 同意
at.accept()

# 获取文本
# print("警告信息:", at.text)

# 取消
# at.dismiss()

# 定位 用户名 输入admin
driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("admin")

# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()
相关推荐
漂流瓶jz12 分钟前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫27 分钟前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
修己xj1 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈2 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries2 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment2 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx233 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
Land03294 小时前
RPA网页自动化:元素定位失效的7种根因与XPath鲁棒性改造方案
运维·selenium·自动化·rpa
kyriewen4 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试
我叫黑大帅4 小时前
解决聊天页内部滚轮改为页面滚动问题
javascript·后端·面试