Selenium IDE的使用方法-程序员宅基地

技术标签: python  selenium  

Selenium介绍

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。Selenium家庭成员有三个,分别是Selenium WebDriver、Selenium IDE和Selenium Grid,这篇博客主要介绍Selenium IDE的使用方法。Selenium官网地址

请添加图片描述

Selenium IDE介绍

Selenium IDE是Chrome和FireFox浏览器中的插件,Selenium IDE结合浏览器提供脚本录制、脚本回放、脚本编辑、元素定位等功能,使用Selenium IDE可以将录制的脚本生成相应单元测试框架的自动化测试脚本,录制脚本支持导出Python pytest、Java JUnit、 NUnit等格式

Selenium IDE安装

Chrome浏览器安装

官网下载地址:点击进入,通过浏览器安装如下图,此方式不FQ无法进入页面

请添加图片描述

推荐使用此网站下载Chrome的插件,下载后解压zip压缩包,将selenium-ide.crx拖至Chrome拓展程序页面,等弹窗出现点击【添加】即可

请添加图片描述

FireFox浏览器安装

无需FQ,通过浏览器直接安装即可

请添加图片描述

Selenium IDE使用

Chrome和FireFox浏览器插件安装成功后,使用方法都是一样的,此处示例使用的是Chrome浏览器

点击浏览器菜单栏中的Selenium IDE图标,进入初始界面

请添加图片描述

Selenium IDE 窗口功能介绍,

请添加图片描述

请添加图片描述

举个栗子:点击【Record a new test in a new project】,输入项目名称点击【OK】,输入URL地址点击【START RECORDING】,开始录制,自动打开界面,在界面进行操作后关闭窗口,点击录制停止按钮,输入用例标题点击【OK】,一条用例录制完成,如下图

请添加图片描述

导出用例

选中要导出的用例,点击鼠标右键→【Export】,选择要导出的格式,点击【Export】

请添加图片描述

导出测试套件也是相同的方法,先选择【Test Suites】,选择要导出的测试套件,点击鼠标右键→【Export】,选择要导出的格式,点击【Export】即可

以下是导出的上图中的用例代码

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestUntitled():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {
    }
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def wait_for_window(self, timeout = 2):
    time.sleep(round(timeout / 1000))
    wh_now = self.driver.window_handles
    wh_then = self.vars["window_handles"]
    if len(wh_now) > len(wh_then):
      return set(wh_now).difference(set(wh_then)).pop()
  
  def test_untitled(self):
    self.driver.get("https://www.bilibili.com/")
    self.driver.set_window_size(1509, 918)
    self.driver.find_element(By.CSS_SELECTOR, ".nav-search-keyword").click()
    self.driver.find_element(By.CSS_SELECTOR, ".nav-search-keyword").send_keys("罗翔")
    self.vars["window_handles"] = self.driver.window_handles
    self.driver.find_element(By.CSS_SELECTOR, ".nav-search-submit").click()
    self.vars["win7307"] = self.wait_for_window(2000)
    self.vars["root"] = self.driver.current_window_handle
    self.driver.switch_to.window(self.vars["win7307"])
    self.driver.close()

通过PyCharm运行以上代码,需要先配置好环境

① 安装pytest,点击【File】→【Settings】→【Project:xxx.py】→【Python:Interpreter】点击添加按钮【+】,搜索pytest,选择安装包,点击【Install Package】,若还缺少其它包,通过此方法添加即可

② 已配置好WebDriver,ChromeDriver或者FireFoxDriver,具体依据所选浏览器,以ChromeDriver为例,配置方法请查看此文章

③ 在代码后添加main函数,如下:

if __name__ == '__main__':
    pytest.main()

或者在Terminal中使用命令运行,如下:

python -m pytest test_case.py

通过PyCharm运行导出的用例,结果如下图,PyCharm中会显示测试结果

请添加图片描述

Selenium IDE其它操作

请添加图片描述

Selenium IDE有助于更深层次的学习Selenium,初学时期可以使用此工具,随着技能的提升,后续应自己多写测试脚本,所以,不再做过多介绍,后面继续学习提升自主编写测试脚本的能力

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Q0717168/article/details/117230816

智能推荐

kafka数据不丢失不重复_Kafka 之 如何保证数据不丢失?不重复?-程序员宅基地

文章浏览阅读217次。数据不丢失1)从生产端:acks = -1,(ack应答机制)从生产端到节点端,当所有isr集合里的节点备份完毕后返回成功;2)从节点端:每个partition至少需要一个isr节点(同步)存活保证数据安全3)从消费端:关闭自动提交,使用手动提交。数据不重复消费1)生产端生产者幂等性实现:PID和Sequence Number为了实现Producer的幂等性,Kafka引入了Producer ID..._kafka保证 不重复的pid

做机械臂导航时遇到的问题4:如何订阅joint_states话题(输出关节状态)_airbot_play/joint_states-程序员宅基地

文章浏览阅读1w次,点赞19次,收藏99次。在完成用arbotix测试机械臂后,我们想控制真实的机械臂伺服电机。由于arbotix是针对舵机的,我们要想控制伺服电机,要将ROS里机械臂的关节信息(角度、角速度、加速度、力等)发给下位机,首先就是要获取关节信息。 关于让机械臂动起来,这里参考了一些大神的博客,在这里表示感谢让模型动起来: http://blog.csdn.net/yaked/article/details_airbot_play/joint_states

Ubuntu18.04 远程桌面SSH + X转发 + VNC4server(亲测延迟最低远程桌面控制)_ssh和远程桌面 哪个延迟低-程序员宅基地

文章浏览阅读1.8k次。1.SSH安装:$ sudo apt-get ssh该远程控制只能使用命令行控制,但是使用方便延迟低。ubuntu18.04下一般自带,win10需要下载putty使用。连接命令:$ ssh username@host_address#username为服务器名,host_address为服务器ip地址ubuntu下使用SSH向服务器下载或上传文件。下载文件命令:$ scp username@host_address:file_name上传命令:$ scp file_name u_ssh和远程桌面 哪个延迟低

Python web框架之tornado(龙卷风)_python tornado-程序员宅基地

文章浏览阅读7.6k次,点赞5次,收藏12次。Tornado是Python界中非常出名的一款Web框架,和Flask一样它也属于轻量级的Web框架。_python tornado

踩过的坑系列之InputStream.read(byte[])方法-程序员宅基地

文章浏览阅读854次。转自:https://www.cnblogs.com/lylife/p/5519109.html项目之前都是好好的,最近现场那边出现一个问题,报错不是合法的json字符串,这个json字符串是通过http请求访问获得的。  通过直接在浏览器上直接访问http这个请求,发现返回的json也是完全正确的。后来排查代码才发现了原来错误出在从字节流中读取数据这里:  看下之前出错代码:这..._inputstream.read(byte[])' on a null object reference

(2,1,2)卷积码BCJR译码matlab仿真_matlab bcjr-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏45次。仿真(2,1,2)卷积码的性能,BCJR译码,级联的调制方式采用QPSK。每个码块信息比特长度为1000,要求编码最终状态归0。要求输出的结果为译码后信息比特的BER。_matlab bcjr

随便推点

python 一组数据 正态分布散点图_如何在SPSS、Python、R中用Q-Q图检验数据是否服从正态分布?...-程序员宅基地

文章浏览阅读505次。正态分布广泛存在于自然现象、生产、生活的方方面面,例如试卷命题难度,产品的使用寿命、农作物产量、气温、降水量、工资收入、人类的身高体重肺活量,甚至颜值……关于正态分布的数学定义及各种性质,不在此赘述。简单理解,就是“两头小,中间大”,比如长相奇丑无比和倾国倾城的人都是少数,绝大多数人都属于大众脸。很多时候,在进行数据分析工作时,首先要看的就是数据是服从何种概率分布,而正态分布则是最重要的一种概率分..._怎么制作散点图表示采样个体在全部个体中的分布位置

C/C++中main函数的三个参数与环境变量的获取_cpp main第三个参数是啥-程序员宅基地

文章浏览阅读1.9k次。C/C++的main函数除了常见的argc、argv,还具有第三个指定的参数envp,完整的引用方式如下:main(int argc, const char *argv[], const char *envp[]) //void类型没有参数1.argc为整数2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv..._cpp main第三个参数是啥

nginx 代理转发 FTP_ftp nginx转发-程序员宅基地

文章浏览阅读2.9w次,点赞4次,收藏24次。这里实现的 FTP 转发,其实和 SFTP 转发是一样的。详情见我的另一篇文章 Nginx代理转发SFTP上次写的 代理转发 SFTP 是在 linux 上测试的,本篇文章则是在 Windows 环境下测试的。关于 Windows 环境怎么搭建 FTP 服务器,请参阅我的另一篇文章 图解 —— Windows 下 FTP 服务器搭建及验证全过程配置文件同样打开 nginx.conf 配置文件,做如下配置,和SFTP的转发配置完全一样stream { upstream ftp{ ._ftp nginx转发

Stata 数据分析_stata主成分分析结果解读-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏13次。最近在学习STATA做分析的时候,发现这个软件很多功能很强大,但是背后的统计学知识要求也比较高,作为一边深入学习统计知识一遍用软件的小白,好多东西只是知其然不知其所以然,因此尝试自己把STATA的一些运算分解出来。因此这里记录一下学习内容。在做STATA的主成分分析和因子分析的时候,觉得这两个东西很像,但是其中的原理好像也不太清楚,网上查了一些文章,花了不少时间才明白怎么做的,这里演示一下具体_stata主成分分析结果解读

javaee学习笔记1_javaee的学习摘要-程序员宅基地

文章浏览阅读338次。为什么需要JavaEE我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展。当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担。为了程序的易维护性和可扩展性,这就需要我们使用JavaEE技术来进行项目开发2、 什么是JavaEEJavaEE是一个开发分布式企业级应用的规范和标准。Java语言的平台有3个版本:适用于小型设备和智能卡的JavaME(Java Platform Micro Edition,Java微型版)、适用于桌面系统的Java_javaee的学习摘要

DM大规模并行处理MPP_dm mpp-程序员宅基地

文章浏览阅读316次。DM大规模并行处理MPP_dm mpp

推荐文章

热门文章

相关标签