zoukankan      html  css  js  c++  java
  • selenium IDE自动化脚本录制

    一、简介

    他作为firefox浏览器的一个插件存在,依附于firefox浏览器,打开它的录制功能,它会记录你对firefox的操作,并可以回放它所记录的你的操作。类似于QTP的自动录制功能.

    二、安装

    # 方法一
    1.打开firefox 浏览器,进入官方网址:http://seleniumhq.org/download/
    2.找到selenium IDE的下载链接,firefox会有提示安装插件,点击安装即可。
    # 方法二
    在firefox的菜单栏中选择tools (工具)--->add-ons Manager(添加组件) 然后搜索selenium IDE  点击下载安装重启即可。

    三、认识IDE面板

    1.文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。Options : 用于设置seleniunm IDE

    2.用来填写被测网站的地址

    3.速度控制:控制案例的运行速度

    4.运行所有:运行一个测试案例集中的所有案例

    5.运行:运行当前选定的测试案例

    6.暂停/恢复:暂停和恢复测试案例执行

    7.单步:可以运行一个案例中的一行命令

    8.录制:点击之后,开始记录你对浏览器的操作

    9.案例集列表

    10.测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示

    11.查看脚本运行通过/失败的个数

    12.当选中前命令对应参数

    13.日志/参考/UI元素/Rollup

     四、案例

    1.录制脚本

    """
    1.打开百度
    2.输入123
    3.点击hao123_上网从这里开始
    4.点击百度地图
    """

     2.导出脚本

    录制完以后点击运行会发现在点击 hao123_上网从这里开始 报错了,原因是Firefox中的selenium IDE不会自己切换窗口,需要我们手动更改代码,此时我们需要导出源代码

     

    # 导出后的源代码
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re
    
    class TestBddt(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Firefox()
            self.driver.implicitly_wait(30)
            self.base_url = "https://www.baidu.com/"
            self.verificationErrors = []
            self.accept_next_alert = True
        
        def test_bddt(self):
            driver = self.driver
            driver.get(self.base_url + "/")
            driver.find_element_by_id("kw").click()
            driver.find_element_by_id("kw").clear()
            driver.find_element_by_id("kw").send_keys("123")
            driver.find_element_by_id("su").click()
            driver.find_element_by_link_text(u"hao123_上网从这里开始").click()
            driver.find_element_by_link_text(u"百度地图").click()
        
        def is_element_present(self, how, what):
            try: self.driver.find_element(by=how, value=what)
            except NoSuchElementException as e: return False
            return True
        
        def is_alert_present(self):
            try: self.driver.switch_to_alert()
            except NoAlertPresentException as e: return False
            return True
        
        def close_alert_and_get_its_text(self):
            try:
                alert = self.driver.switch_to_alert()
                alert_text = alert.text
                if self.accept_next_alert:
                    alert.accept()
                else:
                    alert.dismiss()
                return alert_text
            finally: self.accept_next_alert = True
        
        def tearDown(self):
            self.driver.quit()
            self.assertEqual([], self.verificationErrors)
    
    if __name__ == "__main__":
        unittest.main()

    3.修改代码使其操作运行成功

    # 修改后的代码
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re
    
    
    class TestBddt(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Firefox()
            self.driver.implicitly_wait(30)
            self.base_url = "https://www.baidu.com/"
            self.verificationErrors = []
            self.accept_next_alert = True
    
        def test_bddt(self):
            driver = self.driver
            # 获取url地址
            driver.get(self.base_url + "/")
            # 定位输入框并清空
            driver.find_element_by_id("kw").clear()
            # 定位输入框并输入123
            driver.find_element_by_id("kw").send_keys("123")
            # 定位百度一下按钮并点击
            driver.find_element_by_id("su").click()
            # 定位hao123_上网从这里开始并点击
            driver.find_element_by_link_text(u"hao123_上网从这里开始").click()
            # 切换句柄
            driver.switch_to.window(driver.window_handles[-1])
            # 定位百度地图并点击
            driver.find_element_by_link_text(u"百度地图").click()
    
        def is_element_present(self, how, what):
            try:
                self.driver.find_element(by=how, value=what)
            except NoSuchElementException as e:
                return False
            return True
    
        def is_alert_present(self):
            try:
                self.driver.switch_to_alert()
            except NoAlertPresentException as e:
                return False
            return True
    
        def close_alert_and_get_its_text(self):
            try:
                alert = self.driver.switch_to_alert()
                alert_text = alert.text
                if self.accept_next_alert:
                    alert.accept()
                else:
                    alert.dismiss()
                return alert_text
            finally:
                self.accept_next_alert = True
    
        def tearDown(self):
            self.driver.quit()
            self.assertEqual([], self.verificationErrors)
    
    
    if __name__ == "__main__":
        unittest.main()
  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/niuniu0328/p/14886887.html
Copyright © 2011-2022 走看看