zoukankan      html  css  js  c++  java
  • Python+Selenium笔记(七):WebDriver和WebElement

    (一)  WebDriver

    WebDriver提供许多用来与浏览器交互的功能和设置,通过WebDriver的功能和一些方法,来实现与浏览器窗口、警告、框架和弹出窗口的交互,它也提供了自动化操作浏览器导航栏、设置cookies、截屏等方便我们测试的特性。

    (二)  WebDriver功能及方法

    功能/属性

    简单说明

    current_url

    获取当前页面的URL地址(driver.current_url)
    下面的都是以这种方式,driver指浏览器驱动实例。
    window_handle
    获取当前窗口的句柄
    name
    获取该实例底层的浏览器名称
    orientation
    获取当前设备的方位
    page_source
    获取当前页面源代码
    title
    获取当前页面的标题
    window_handles
    获取当前会话里所有窗口的句柄

    方法

    简单说明

    close()
    关闭当前浏览器窗口
    back()
    后退一步
    forward()
    前进一步
    get(url)
    访问URL并加载网页到当前的浏览器会话
    maximize_window()
    最大化浏览器窗口
    quit()
    退出当前的驱动实例并关闭所有相关窗口
    refresh()
    刷新当前页面
    implicitly_wait()
    等待时间,单位为秒
    set_page_load_timeout()
    设置一个页面完全加载完成的超时等待时间,单位为秒
    set_script_timeout()
    设置脚本执行的超时时间

    (三)  WebElement功能及方法

        通过WebElement可以实现与网站页面元素的交互,包括文本框、文本域、按钮、单选框、多选框、表格、行、列和div等。

    功能/属性

    简单说明

    size
    获取元素大小(例如element.size)
    下面都是以这种方式,element指定位的某个元素
    tag_name
    获取标签的名称
    text
    获取元素的文本值

    方法

    简单说明

    clear()
    清除文本框或文本域的内容
    click()
    点击元素
    get_attribute(name)
    获取元素的属性值,name:要获取的属性名称
    is_displayed()
    检查元素对于用户是否可见
    is_enabled()
    检查元素是否可用
    is_selected()
    检查元素是否被选中,主要用于单选框和复选框
    send_keys(value)
    输入文本,value是要输入的值
    submit()
    提交表单。如果对元素使用,将会提交该元素所属的表单
    value_of_css_property(property_name)
    获取CSS属性的值, property_name是CSS属性的名称

    (四)  操作表单、文本框、复选框、单选按钮

    通过WebElement实现与各种HTML控件的自动化交互,例如在一个文本框输入文本、单击按钮、选择单选框或者复选框、获取元素的文本及属性值等。

    例如,博客园注册功能的自动化:

    (这里只是举个例子哈,直接复制是没用的,下面的代码只定位部分字段(邮箱、登录名和注册按钮),而且没有处理验证码,验证码部分以后再研究怎么处理)

     1 def test_register_new_user(self):
     2 
     3     #定位并点击博客园首页的 注册 
     4 
     5     login_area = self.driver.find_element_by_css_selector('#login_area')
     6 
     7     register = login_area.find_element_by_link_text('注册')
     8 
     9     register.click()
    10 
    11     #检查打开的网页标题是不是'用户注册 - 博客园'
    12 
    13     self.assertTrue('用户注册 - 博客园' == self.driver.title)
    14 
    15     # 定位注册页面各个字段及注册按钮
    16 
    17     user_email = self.driver.find_element_by_id('Email')
    18 
    19     user_login_name = self.driver.find_element_by_id('LoginName')
    20 
    21     register_btn = self.driver.find_element_by_id('submitBtn')
    22 
    23     # 检查字段允许的最大输入字符与最小输入字符是否与预期一致
    24 
    25     self.assertEqual('2', user_login_name.get_attribute('data-val-length-min'))
    26 
    27     self.assertEqual('30', user_login_name.get_attribute('data-val-length-max'))
    28 
    29     # 检查各个字段及按钮对用户是否可见及可用
    30 
    31     self.assertTrue(user_email.is_displayed() and user_email.is_enabled())
    32 
    33     # 输入用户信息
    34 
    35     user_email.send_keys('test@163.com')
    36 
    37     user_login_name.send_keys('test')
    38 
    39     # 点击注册按钮
    40 
    41     register_btn.click()
    42 
    43     # 检查是否显示注册成功的提示
    44 
    45     self.assertTrue(self.driver.find_element_by_css_selector('p.txt-title.success-color').text == '注册成功')

    例如,可以使用下面的方式检查博客园登录页面的复选框是否被选中

     1 def test_login(self):
     2 
     3     …省略打开登录页面的代码(这段就不注释了#
     4 
     5     automatic_login = self.driver.find_element_by_id('remember_me')
     6 
     7     #检查登录页面复选框,是否默认不被选中
     8 
     9     self.assertFalse(automatic_login.is_selected())
    10 
    11     #点击选中复选框
    12 
    13     automatic_login.click()
  • 相关阅读:
    使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)
    oracle的简单操作和要注意的地方
    lambda匿名函数
    Linux查看系统信息(版本、cpu、raid)
    chmod 777后,目录权限不可写解决方法
    linux /boot空间满了如何清理
    k3s
    IDEA项目编译参数Werror设置
    minicube 安装
    ubuntu安装docker
  • 原文地址:https://www.cnblogs.com/simple-free/p/8447358.html
Copyright © 2011-2022 走看看