博客
关于我
Selenium 核心技术:通识
阅读量:345 次
发布时间:2019-03-04

本文共 2218 字,大约阅读时间需要 7 分钟。

WebDriver运行原理

Selenium WebDriver 是一个开源工具,用于自动化测试。它通过与浏览器的驱动程序通信,执行复杂的自动化操作。了解其运行原理有助于更好地开发和优化自动化测试脚本。

Selenium WebDriver 的核心工作原理是通过 HTTP 协议与浏览器通信。具体流程如下:

  • 测试工程师编写自动化测试脚本,发送指令给浏览器驱动。
  • 浏览器驱动接收指令后,将其转化为浏览器可执行的命令。
  • 浏览器执行命令,完成指定的操作。
  • 浏览器将操作结果返回给驱动程序。
  • 驱动程序根据返回结果反馈给测试脚本,确保测试流程顺利进行。
  • Selenium WebDriver 与浏览器的通信基于 JSON Wire 协议。所有通信数据以 JSON 格式传递,确保高效且可靠。

    元素定位的8种方法

    在 Selenium WebDriver 中,元素定位是核心操作之一。以下是8种常用定位方法:

  • ID 定位
  • 名称定位
  • 链接文本定位
  • 部分链接文本定位
  • XPath 定位
  • 标签(Tag)定位
  • CSS 选择器定位
  • 类名定位
  • 示例代码如下:

    from selenium import webdriverfrom selenium.webdriver.common.by import Byclass TestCase(object):    def __init__(self):        self.driver = webdriver.Chrome()        self.driver.get("http://www.baidu.com")        self.driver.maximize_window()        time.sleep(1)        def execute_click_su(self):        self.driver.find_element_by_id('su').click()        time.sleep(3)        def quit_driver(self):        self.driver.quit()

    封装写法:

    from selenium import webdriverfrom selenium.webdriver.common.by import Bydef get_element(driver, *loc):    element = driver.find_element(*loc)    return elementif __name__ == '__main__':    driver = webdriver.Chrome()    driver.get("http://www.baidu.com")    loc1 = (By.ID, 'kw')    get_element(driver, *loc1).send_keys("github")    get_element(driver, By.ID, 'su').click()    time.sleep(3)    driver.quit()

    Selenium WebDriver属性

    属性 属性描述
    driver.name 浏览器名称
    driver.current_url 当前 URL
    driver.title 当前页面标题
    driver.page_source 当前页面源码
    driver.current_window_handle 当前窗口句柄
    driver.window_handles 所有窗口句柄
    driver.name 浏览器名称

    Selenium WebElement

    WebElement 是 WebDriver 定位到的元素对象。它包含以下属性:

    属性 属性描述
    id 元素标识
    size 元素尺寸
    rect 元素位置和尺寸
    tag_name 元素标签
    text 元素文本
    value_of_css_property 元素的 CSS 属性值

    常用方法

    方法 方法描述
    send_keys() 输入内容
    clear() 清空内容
    click() 单击元素
    get_attribute() 获取属性值
    is_selected() 是否被选中
    is_enabled() 是否可用
    is_displayed() 是否可见
    value_of_css_property() 获取 CSS 属性值

    示例:

    def test_webElement_method(self):    e = self.driver.find_element_by_id('t1')    e.send_keys('test selenium')    time.sleep(2)    print(e.get_attribute('type'))    print(e.get_attribute('name'))    print(e.get_attribute('value'))    print(e.value_of_css_property('font'))    print(e.value_of_css_property('color'))    time.sleep(2)    e.clear()

    注:以上示例仅为部分方法演示,具体使用请根据需求扩展。

    转载地址:http://htdh.baihongyu.com/

    你可能感兴趣的文章
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 八大排序算法合集
    查看>>
    python 关于epoll的学习
    查看>>
    Python 内存管理
    查看>>
    Python 内嵌函数:它们有什么用处?
    查看>>
    Python 内置 sum 函数 vs. for 循环性能
    查看>>
    python 内置slice的用法
    查看>>
    Python 内置时间模块
    查看>>
    python 内部如何实现命名元组?
    查看>>
    Python 写Android App性能:入门到高级
    查看>>
    python 写入json数据到数据库
    查看>>
    Python 出现 TypeError: ‘encoding‘ is an invalid keyword argument for this function 解决方法
    查看>>