selenium自动化测试
程序员文章站
2024-03-21 23:10:46
...
selenium
selenium是一个用于WEB应用程序的测试工具。该工具直接运行于浏览器,模拟用户操作。支持现在主流浏览器。主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
selenium webdriver:
准备工作:
- python3.7+pycharm
- pip install selenium
- 对应浏览器和驱动(例如:Firefox+geckodriver。在C盘 根目录创建文件夹webdriver,将驱动移动至此文件夹)
初始化:
- 导入selenium webdriver包
from selenium import webdriver
- 新建firefox webdriver对象
driver = webdriver.Firefox()
- 设置webdriver超时时间
driver.implicitly_wait(30)
- 设置浏览器窗口展示方式
driver.maximize_window()
访问目标网站:
webdriver.get(url)
搜索关键字:
- 通过driver.find_element_by_id() 通过页面元素的ID属性值来定位元素
- element.clear() 清除文本框或文本域中的内容
- element.send_keys() 模拟输入文本
获取页面标题:
- 通过find_elements_by_tag() 通过页面元素的tag属性值来定位元素
- element.text 获取元素的文本值
精准定位Xpath:
xpath是一门在xml文档中查找信息的语言,使用路径表达式在XML文档中选取节点:
节点选取进阶
谓语:谓语用来查找某个特定的节点或者包含某个指定的值的节点。
通配符:
用来选取未知的XML元素
示例
webdriver:
常用交互方法:
定位控件方法:
隐式等待
原理:使用webdriver提供的webdriverwait类和expected_conditions来实现
优点:定制化,具备更好的可操控性
示例:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdrier.support import expected_conditions
WebdriverWait(self.driver,10).util(expected_conditions.xxxxx)
显示等待
原理:设置之后,webdriver会在一段时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可见的元素,默认等待时间为0。
解决:网络延迟、Ajax动态加载元素导致的程序响应时间不一致问题
配置方法:implicatly_wait(s)
元素级set_page_load_timeout(s)
页面级
Expected_conditions类
webelement功能列表:
webelement常用交互方法: