RF练习---开发库@导入py文件

RobotFramework 作业 4
**按照如下说明 安装、运行 教学管理web系统的安装包
1.确保本机已经安装了python3.6,并且pip命令的目录已经添加到path环境变量中。

2.点击这里
https://github.com/jcyrss/songqin-testdev/raw/master/webapi/code/restapi-teach5.zip
下载zip包
解压zip包到一个目录中(请确保该目录的路径里面没有中文字符)
3.进入目录,双击运行install.bat,安装必要的库
4. 最后双击run.bat即可运行该web系统。 注意:run.bat 里面运行着产品服务,不要关闭该命令行窗口。
如果运行run.bat 出现 80 port not free 这样的问题,解决方案参考
https://github.com/jcyrss/songqin-testdev/issues/4

5.登录浏览器,输入http://localhost/mgr/login/login.html地址,进入管理员登录界面。
输入管理员用户名auto,密码为 sdfsdfsdf,即可登录
创建一个RF测试套件,包含下面的一个用例
用例名:
验证当系统中没有课程的时候,是否能成功添加一个课程
前置条件:
系统中没有课程
测试步骤:
添加课程,输入课程名、详情描述、展示次序,点击创建
预期结果:
创建的课程正确显示在下面的课程列表中。
这里为了简化,我们只检查 课程名就可以了
注意:
这个用例的初始化和清除操作,都是需要设置为无课程状态。
需要我们开发一个python测试库,使用selenium库开发关键字函数deleteAllCourse, 实现使用Python自动点击删除课程按钮**
测试库(另一种写法)

  from selenium import webdriver
  import time
    
    
    def Delete_Course():
    	driver = webdriver.Chrome()
    	driver.implicitly_wait(10)
    	driver.get('http://localhost/mgr/login/login.html')
    	driver.find_element_by_id('username').send_keys('auto')
    	driver.find_element_by_id('password').send_keys('sdfsdfsdf')
    	driver.find_element_by_tag_name('button').click()
    
    	driver.implicitly_wait(2)
    
    	tbody = driver.find_elements_by_css_selector("tbody")
    	if tbody:               #判断里面有没有课程,没有的话,直接退出
    		tr = driver.find_elements_by_css_selector("tbody>tr")
    		for i in range(1,len(tr)+1):
    			dele = driver.find_element_by_css_selector("tbody>tr>td:nth-child(4)>button:nth-child(2)")
    			dele.click()
    			driver.find_element_by_css_selector(".btn-primary").click()
    			time.sleep(1)
    			driver.refresh()
    
    	driver.quit()

测试库 st.py

from selenium import webdriver
import time



def DeleteAllCourse():
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    driver.get('http://localhost/mgr/login/login.html')
    driver.find_element_by_id('username').send_keys('auto')
    driver.find_element_by_id('password').send_keys('sdfsdfsdf')
    driver.find_element_by_tag_name('button').click()

    driver.implicitly_wait(2)
    while True:
        deleteButtons = driver.find_elements_by_css_selector(
            "button[ng-click^='delOne']")
        if deleteButtons:
            deleteButtons[0].click()
            driver.find_element_by_css_selector('button.btn-primary').click()
            time.sleep(1)
        else:
            break


    driver.implicitly_wait(10)

    driver.quit()

RF测试套件文件 t1.robot

*** Settings ***
Library  SeleniumLibrary
Library  collections
Library    st
*** Test Cases ***
百度搜索松勤
    [Setup]     DeleteAllCourse
    [Teardown]   DeleteAllCourse
    Open Browser                  http://localhost/mgr/login/login.html    chrome
    Set Selenium Implicit Wait    10

    Input Text                    id=username                   auto
    Input Text                    id=password                   sdfsdfsdf
    Click Element               css:button                          #点击登录按钮的元素
    Click Element               css:button[ng-click*="showAddOne=true"]             #点击添加课程
    input text                  css:[ng-model*="addData.name"]          初中化学
    input text                  css:[ng-model*="addData.desc"]         初中化学课程           #课程描述
    input text                  css:[ng-model*="addData.display_idx"]         初中化学课程
    sleep                       1
    Click Element               css:button[ng-click*="addOne()"]                    #点击添加一个课程

    ${eles}=    Get WebElements         css:tr>td:nth-child(2)              #Get WebElements获取页面元素,是列表。赋值给一个变量
    ${lessons}=    create list              #创建一个空列表
    :FOR  ${ele}  in  @{eles}             #从列表中获取,用@符.不需要冒号
    \       log to console        ${ele.text}             #缩进
    \       Append To List   ${lessons}   ${ele.text}           #第一个参数是列表,第二要加的课程,要导入collections



    Should Be Equal    ${lessons}==["初中化学"]


    Close Browser

猜你喜欢

转载自blog.csdn.net/qq_37615098/article/details/84206449