【学习笔记】web自动化测试----selenium

来自b站白月黑羽教学视频

selenium

Selenium 是一个 Web 应用自动化框架
自动化架构:
【学习笔记】web自动化测试----selenium_第1张图片

通过http协议进行交互

Selenium环境的安装主要就是安装两样东西: 客户端库 和 浏览器 驱动

如何定位元素:

  1. 根据元素的id定位元素
  2. 根据 class属性、tag名 选择元素
    【学习笔记】web自动化测试----selenium_第2张图片

图中<后的是元素标签,如input,span,后面跟的是元素属性,如type,name,class,id等。
find_elements_by_class_name 方法返回的是找到的符合条件的 所有 元素 (这里有3个元素), 放在一个列表中返回。而如果我们使用find_element_by_class_name(注意少了一个s)方法, 就只会返回第一个元素。
find_element 和 find_elements 的区别:

  • 使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表
  • 使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常
  1. 通过WebElement对象选择元素
    WebElement对象 也可以调用 find_elements_by_xxx, find_element_by_xxx 之类的方法。
    WebDriver 对象 选择元素的范围是 整个 web页面, 而WebElement 对象 选择元素的范围是 该元素的内部。

隐式等待

因为我们的代码执行的速度比 百度服务器响应的速度 快。百度还没有来得及 返回搜索结果,我们就执行了如下代码。
Selenium提供了一个更合理的解决方案,是这样的:后续所有选择元素的操作时,当发现元素没有找到的时候, 并不 立即返回 找不到元素的错误。而是周期性(每隔半秒钟)重新寻找该元素,直到该元素找到,或者超出指定最大等待时长,这时才 抛出异常(如果是 find_elements 之类的方法, 则是返回空列表)。

操控元素的基本方法:

  • 点击元素
  • 在元素中输入字符串,通常是对输入框这样的元素
  • 获取元素包含的信息,比如文本内容,元素的属性

1. 点击元素
点击元素 非常简单,就是调用元素WebElement对象的 click方法,点击的是该元素的 中心点 位置

2. 输入框
输入字符串 也非常简单,就是调用元素WebElement对象的send_keys方法。
如果我们要 把输入框中已经有的内容清除掉,可以使用WebElement对象的clear方法。
eg:我们要写一个自动化程序:要求在输入框中填入姓名:白月黑羽。

from selenium import webdriver

wd = webdriver.Chrome()
wd.implicitly_wait(10)

wd.get('http://cdn1.python3.vip/files/selenium/test3.html')
element = wd.find_element_by_id('input1')
element.clear()
element.send_keys('白月黑羽')

3. 获取元素信息

  • 获取元素的文本内容:通过WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。 这时,用WebElement对象的text属性,获取文本内容,就会有问题。出现这种情况,可以尝试使用 element.get_attribute(‘innerText’) ,或者 element.get_attribute(‘textContent’)
  • 获取元素属性:通过WebElement对象的 get_attribute 方法来获取元素的属性值。
    执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()
  • 获取整个元素对应的HTML:可以使用 element.get_attribute('outerHTML’)。如果,只是想获取某个元素 内部 的HTML文本内容,可以使用 element.get_attribute(‘innerHTML’)
  • 获取输入框里面的文字:对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用 element.get_attribute(‘value’)

CSS选择器

CSS语法:

你可能感兴趣的:(测试学习笔记,selenium,python,软件测试)