web元素定位之------弹出框Alert

HTML DOM alert() 方法
要想了解alert,先来了解一下【HTML DOM Window 对象】。Window 对象表示浏览器中打开的窗口。如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。alert() 是Window 对象的一个方法
alert不是页面元素,是javascript的一个控件,所以不能右键检查,不能用传统的方式定位
附:关于js三种弹出框的介绍:https://blog.csdn.net/qq_33247435/article/details/85626051

一、定义和用法
alert() 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。

二、语法

alert(message)
参数 描述
message 要在 window 上弹出的对话框中显示的纯文本(而非 HTML 文本)

三、selenium提供了三个处理alert的方法
注意:首先需要切换窗口到alert

driver.switch_to.alert()

(1)点击确定按钮

#点击确定
driver.switch_to.alert.accept()

(2)

#点击取消
driver.switch_to.alert.dismiss()

(3)
可以通过抓取到的弹窗的信息,判断操作是否成功

#获取弹窗的文本信息
driver.switch_to.alert.text

代码:

time.sleep(5)
res = driver.switch_to.alert.text
driver.switch_to.alert.accept()
print(res)

两种实现方式的代码:
(1)处理弹出框时,隐式等待是不起作用的。因为隐式等待判断的是页面加载,而此处点击确认按钮,只有弹窗没有页面加载,所以不起作用,需要用以下:

time.sleep()
driver.switch_to.alert.accept()

(2)添加浏览器等待,也可以处理弹出框

#智能等待之显示等待,浏览器等待
WebDriverWait(driver,30,1).until(expected_conditions.alert_is_present())
等待30秒,隔1秒检查一次.直到期望的条件--弹出框存在
#点击确定
driver.switch_to.alert.accept()

你可能感兴趣的:(四,selenium)