Python+Selenium笔记(九):操作警告和弹出框

2018-02-21 10:03:25来源:cnblogs.com作者:赖权华人点击

分享

#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)

 改成 driver.switch_to.alert就不会了。

(一) 前言

开发人员使用JavaScript 警告或者模态对话框来提示校验错误信息、报警信息、执行操作后的返回信息,甚至用来接收输入值等。

(二) Alert

Selenium WebDriver 通过Alert 类来操控 JavaScript 警告。

(三) Alert功能及方法

功能/属性

简单说明

text

获取弹出窗口的提示信息(文本内容)

alert.text

 

方法

简单说明

accept()

接受JS警告信息,单击确定

dismiss()

接受JS警告信息,单击取消

send_keys(value)

模拟给元素输入信息

 

(四) Webdriver API补充说明(基于笔记7)

方法

简单说明

switch_to_active_element()

返回当前焦点的对象

switch_to_alert()

把焦点切换至当前页面弹出的警告

switch_to_default_content()

切换焦点至默认框架内

switch_to_frame()

通过索引、名称和网页元素,将焦点切换至指定的框架

switch_to_window()

切换焦点到指定的窗口

 

(五) 示例(检查博客园首页点击退出是否弹出提示)

 1 import unittest 2 from  selenium import webdriver 3 class SignOut(unittest.TestCase): 4  5     @classmethod 6     def setUpClass(cls): 7         #获取自定义的 profile路径 8         cls.profile = webdriver.FirefoxProfile/ 9             (r'C:/Users/quanhua/AppData/Roaming/Mozilla/Firefox/Profiles/tnwjkr4m.selenium')10         #创建火狐浏览器驱动实例,启动时加载自定义的profile11         cls.driver = webdriver.Firefox(cls.profile)12         cls.driver.implicitly_wait(20)13         cls.driver.maximize_window()14         cls.driver.get('https://www.cnblogs.com/')15     def test_sign_out(self):16         driver = self.driver17         #定位博客园首页的 退出18         span_userinfo = driver.find_element_by_css_selector('#span_userinfo')19         sign_out_btn = span_userinfo.find_element_by_link_text('退出')20         sign_out_btn.click()21         #将焦点切换到当前页面弹出的警告,并获取弹出框的text22         alert = driver.switch_to_alert()23         alert_text = alert.text24         #检查点击退出时,是否弹出提示信息  确认退出吗?25         self.assertTrue(alert_text == '确认退出吗?')26         alert.accept() #点击确定27 28     @classmethod29     def tearDownClass(cls):30         cls.driver.quit()

(六) 使用示例代码需要配置火狐的profile(如下图)

或者百度  Python selenium profile

配置好后,选择自定义的profile打开火狐,登录一次博客园(勾选自动登录),示例代码就可以运行了。

 

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台