博客
关于我
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/

    你可能感兴趣的文章
    one_day_one--mkdir
    查看>>
    ONI文件生成与读取
    查看>>
    Vue 项目中实现高效的消息提示与确认对话框功能(模版)
    查看>>
    Online PDF to PNG、JPEG、WEBP、 TXT - toolfk
    查看>>
    onlstm时间复杂度_CRF和LSTM 模型在序列标注上的优劣?
    查看>>
    onlyoffice新版5.1.2版解决中文汉字输入重复等问题
    查看>>
    onnx导出动态输入
    查看>>
    onnx导出动态输入
    查看>>
    onScrollStateChanged无效
    查看>>
    onTouchEvent构造器
    查看>>
    on_member_join 和删除不起作用.如何让它发挥作用?
    查看>>
    oobbs开发手记
    查看>>
    OOM怎么办,教你生成dump文件以及查看(IT枫斗者)
    查看>>
    OOP
    查看>>
    OOP之单例模式
    查看>>
    OOP向AOP思想的延伸
    查看>>
    Vue element 动态添加表单验证
    查看>>
    OO第一次blog
    查看>>
    OO第四单元总结
    查看>>
    OO第四次博客作业
    查看>>