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


    #之前发的 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:UsersquanhuaAppDataRoamingMozillaFirefoxProfiles	nwjkr4m.selenium')
    10         #创建火狐浏览器驱动实例,启动时加载自定义的profile
    11         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.driver
    17         #定位博客园首页的 退出
    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         #将焦点切换到当前页面弹出的警告,并获取弹出框的text
    22         alert = driver.switch_to_alert()
    23         alert_text = alert.text
    24         #检查点击退出时,是否弹出提示信息  确认退出吗?
    25         self.assertTrue(alert_text == '确认退出吗?')
    26         alert.accept() #点击确定
    27 
    28     @classmethod
    29     def tearDownClass(cls):
    30         cls.driver.quit()

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

    或者百度  Python selenium profile

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

     

  • 相关阅读:
    smarty的学习
    用接口实现封装的一个mysqli工具类
    centos7/8安装java和mysql
    Mysql 8.0 忘记密码报错1045办法,skip-grant-tables不管用
    卸载vivo手机自带的应用程序
    DevOps的学习(一)
    quartzy的spring注入问题
    html加载执行的顺序
    关于时间Date转换成long类型的方法(时间戳的转换)
    系统中出现乱码
  • 原文地址:https://www.cnblogs.com/simple-free/p/8456167.html
Copyright © 2020-2023  润新知