在WebDriver中处理JavaScript所生成的alter、confirm以及prompt十分简单,具体做法是使用switch_to_alter()方法定位到alter/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作。
1.警告消息框(alert)
警告消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说用户必须先关闭该消息框然后才能继续进行操作。
2.确认消息框(confirm)
确认消息框向用户提示一个"是与否"问题,用户可以根据选择"确定"按钮和"取消"按钮。
3.提示消息对话(prompt)
提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个"确定"按钮和一个"取消"按钮。选择"确认"会响应对应的提示信息,选择"取消"会关闭对话框。
alter、comfirm、prompt三种样子,如下图
- text:返回alter/confirm/prompt中的文字信息。
- accept():接受现有警告框,即点击确认。
- dismiss():解散现有警告框,即点击取消或者“x"掉对话框。
- send_keys(keysToSend):发送文本至警告框,
输入文本值,仅限于prompt,在alter和confirm上没有输入框,警示框出现的步骤肯定是在某一个事件之后的,但你的场景也可能是不一定出现警示框,所以可以用try except去捕捉警示框,这里没写具体代码,自己去尝试哦~,如果警示框出现,就切换至警示框进行操作了。
- keysToSend:将文本发送至警告框。
百度搜索设置弹出的窗口是不能通过前端工具对其进行定位的,这个时候就可以通过switch_to_alert()方法接受这个弹窗。
警告框处理.py
from selenium import webdriver from selenium.webdriver.common.action_chains import