Selenium3+python3自动化(十四)--alertsconfirmprompt

前言

不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。

alertsconfirmprompt弹出框操作主要方法有:

text:获取文本值

accept():点击“确认”

dismiss():点击“取消”或者叉掉对话框

send_keys():输入文本值--仅限于prompt,在alert和confirm上没有输入框

一、认识alertsconfirmprompt

1.如下图,从上到下依次为alertsconfirmprompt,先认清楚长什么样子,以后遇到了就知道如何操作了

 

 

2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后使用浏览器打开)

<html>  

<head>  

   <title>Alert</title>  

    </head>  

<body>  

<input id = "alert" value = "alert" type = "button" onclick = "alert('很高兴见到你');"/>  

<input id = "confirm" value = "confirm" type = "button" onclick = "confirm('你想学习html吗?');"/>  

<input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('请输入你的爱好:','sleep'); document.write(name) "/>    

</body>   

</html>  

 二、alert、confirm、prompt操作

1.先用switch_to_alert()方法切换到相应的弹出框上

2.可以用text方法获取弹出的文本信息

3.accept()点击确认按钮

4.dismiss()相当于右上角x,取消弹出框

5.弹框上有输入框的,可以使用send_keys()方法输入文本内容

(url的路径,直接复制浏览器打开的路径)

# coding:utf-8
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("file:///C:/Users/Administrator/Desktop/1.html")
# driver.find_element_by_id("alert").click()
# driver.find_element_by_id("confirm").click()
driver.find_element_by_id("prompt").click()
time.sleep(3)
#切换到弹出框上
r=driver.switch_to.alert
#打印框中文本内容
print(r.text)
time.sleep(2)
#弹出框中有输入框,可以send_keys,否则报错:User dialog does not have a text box input field
# r.send_keys("xixi")
time.sleep(2)
#点击框中的确认按钮
# r.accept()

#取消弹出框
r.dismiss()

 三、实战演练

百度-设置-搜索设置,保存设置,弹出alert窗口

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
browser=webdriver.Chrome()
browser.get("https://www.baidu.com")
s=browser.find_element_by_id("s-usersetting-top")
time.sleep(3)
ActionChains(browser).move_to_element(s).perform()
browser.find_element_by_link_text("搜索设置").click()
time.sleep(3)
#每页50条
browser.find_element_by_id("nr_3").click()
time.sleep(2)
browser.find_element_by_link_text("保存设置").click()
a=browser.switch_to.alert
a.accept()

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/13582886.html