selenium之弹框操作
1,分类
弹框类型自见解分为四种:
1,页面弹框
2,警告提示框(alert)
3,确认消息框(confirm)
4,提示消息对话(prompt)
提示: selenium 提供switch_to_alert()方法定位到 alert/confifirm/prompt对话框。
2,操作
1,页面弹框
页面弹框是属于HTML里面的元素,它是由用户在操作页面的时候在本页面弹出的。所以科研直接在页面上定位到
步骤:
1,用户操作后,弹出页面弹框
2,直接定位弹框元素,进行操作
以下是例示代码:
from selenium import webdriver #引入库 #打开谷歌浏览器 driver=webdriver.Chrome() #打开网页 driver.get('http://www.baidu.com') #定位百度的登录元素,然后点击操作 driver.find_element_by_css_selector('#u1 > a.s-top-login-btn.c-btn.c-btn-primary.c-btn-mini.lb').click() #弹框出现后,我们直接定位元素操作就好了 driver.find_element_by_css_selector('#TANGRAM__PSP_11__footerULoginBtn').click()
2,警告消息框
警告消息框是必须先关闭了用户才能操作的框,它提供了一个确认按钮,以及警告消息。
操作代码如下:
from time import sleep from selenium import webdriver #引入库 #打开谷歌,网址 driver=webdriver.Chrome() driver.get('http://119.23.55.123:8084/fsmarket/user.php') #我们定位获取警告框的元素,点击,弹出警告框 driver.find_element_by_css_selector('#cnblogs_post_body > p:nth-child(17)').click() sleep(1) #为了可能因为网络等问题而获取不到弹框,我们添加等待时间 #然后我们获取警告框,赋予变量名 alert=driver.switch_to.alert #获取消息框文本在控制台打印 print(alert.text) alert.accept() #关闭框操作 接受弹框
3,确认消息框(confirm)
确认消息框提供是或否操作,用户可以根据选择"确定"按钮和"取消"按钮。与警告消息框不同的是,多了个取消按钮
操作代码如下:
from time import sleep from selenium import webdriver #引入库 #打开谷歌,网址 driver=webdriver.Chrome() driver.get('http://119.23.55.123:8084/fsmarket/user.php') #我们定位获取消息框的元素,点击,弹出消息框 driver.find_element_by_css_selector('/html/body/div/input[3]').click() sleep(1) #为了可能因为网络等问题而获取不到弹框,我们添加等待时间 #然后我们获取消息框,赋予变量名 alert=driver.switch_to.alert #获取消息框文本在控制台打印 print(alert.text) alert.accept() #关闭框操作 接受弹框 alert.dismiss() #关闭框操作 取消弹框
4,提示消息对话(prompt)
提示消息框提供了一个文本字段,用户可以在此字段输入一个内容来响应对话框提示。该消息框有一个"确定"按
钮和一个"取消"按钮。选择"确认"会响应对应的提示信息,选择"取消"会关闭对话框。
操作代码如下:
from time import sleep from selenium import webdriver #引入库 #打开谷歌,网址 driver=webdriver.Chrome() driver.get('file:///C:/Users/hunk/Desktop/alter.html') #我们定位获取对话框的元素,点击,弹出对话框 driver.find_element_by_css_selector('/html/body/div/input[3]').click() sleep(1) #为了可能因为网络等问题而获取不到弹框,我们添加等待时间 #然后我们获取对话框,赋予变量名 alert=driver.switch_to.alert #获取对话框文本在控制台打印 print(alert.text) alert.send_keys("我是小白") #弹出框内输入内容 alert.accept() #接受 print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #获取关闭弹窗结果 #获取确 认弹窗结果