selenium IDE结合浏览器提供脚本的录制,回放以及编辑脚本功能,以及元素的定位,可以使用selenium IDE将录制的脚本生成相应的带单元测试框架的自动化测试脚本。
selenium具有录制功能,可以web回放,录制的脚本可以转换为java、python、ruby、php等多种脚本语言。selenium IDE是Firefox的一个插件,依附于Firefox。所以需要先安装Firefox浏览器。
1、指的是你当前录制的开始连接地址
2、播放的速度
3、是指你的测试用例,刚开始录制都是没有命名的
4、脚本命令内容,command:方法关键字;target:元素定位;value:参数
5、新建和修改脚本的地方
6、日志输出
7、红色圆点,空心的时候表示正在录制,实心表示录制结束
2.录制第一个脚本
打开www.baidu.com,在输入框hyp,点击百度按钮。我们只需要打开seleniumIDE,然后在Firefox中操作以上步骤,之后打开seleniumIDE关闭录制按钮,生成以下脚本。
3,脚本编辑
1、编辑某条命令,例如修改脚本中的搜索内容,将搜索的hyp换成seleniumIDE。只需要将图中的value值修改一下即可。
2、插入一条脚本,右键选择insert new command,根据需要,添加command、target、value
3、添加注释,脚本上方,右键选择insert new comment
4、命令和注释位置调整,只需要通过鼠标点击拖拽即可。
5、设置断点,选择一条命令,鼠标右键选择toggle breakpiont
五、脚本转换
我们可以选择文件–Export test case As…来转换我们需要的脚本格式
六:导出脚本:
注意:需要安装pytest 要不然没办法运行pip install pytest
如果安装了还是提示不能运行
解决办法
cmd命令行窗口,进入python安装路径的Scripts目录(D:\SW\Python 3.6.6\Scripts),执行pip install -U pytest,等待安装完成。
如果还不行就这样:
pip install pytest==5.3.1
重启cmd窗口,执行pytest --version,显示如下,则安装成功。
运行下面的代码
切换到该目录下:cd Desktop
运行:pytest test_testcase02.py
导出的代码:
# 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 TestTestcase02():
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_testcase02(self):
self.driver.get("https://www.baidu.com/")
self.driver.set_window_size(828, 573)
self.driver.find_element(By.ID, "kw").send_keys("selenium")
self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
self.driver.find_element(By.ID, "su").click()
element = self.driver.find_element(By.ID, "su")
actions = ActionChains(self.driver)
actions.move_to_element(element).perform()
element = self.driver.find_element(By.CSS_SELECTOR, "body")
actions = ActionChains(self.driver)
actions.move_to_element(element, 0, 0).perform()
element = self.driver.find_element(By.LINK_TEXT, "地图")
actions = ActionChains(self.driver)
actions.move_to_element(element).perform()
self.vars["window_handles"] = self.driver.window_handles
self.driver.find_element(By.LINK_TEXT, "Selenium automates browsers. That\'s it!").click()
self.vars["win2239"] = self.wait_for_window(2000)
self.driver.switch_to.window(self.vars["win2239"])