Python版的Selenium自动化测试介绍

      (本文欢迎转载,注明来源即可:https://blog.csdn.net/actionwind/article/details/103530132)

       虽然我不怎么喜欢Python这门语言,但貌似大多数做Selenium的人用的是Python,所以为了满足社会这种对于低端语言的需求,还是来介绍一下Python版的Selenium吧(哈哈,开玩笑的了,用这种低端语言的人千万别往心里去)。

       一、首先还是脚本开发环境的搭建:

              1、安装Python:当然是上官网下载了,打开后配置环境变量勾选上,点击下一步即可,没什么好说的了,这都搞不定就不用往下看了,嘿嘿。

              (后来我发现有一点可真的非得说明不可:千万不要安装在含有中文的目录,一定要毫不犹豫的就安装在英文目录,最好连空格都不要有。否则,你的身体和精神很有可能会出现诸如头痛、烦躁、狂暴、想砸电脑、想砸桌子、想打人、精神失常等莫名其妙的不适症状,切记!切记!这傻冒语言对中文支持得不好,被这个问题坑了好几天,各种莫名其妙的问题层出不穷,重新安装在英文目录之后,一切迎刃而解,真是不吐不快。)

              2、安装Selenium模块:上官网下载selenium-*****-******.whl 包,然后打开cmd窗口,运行pip install {selenium包路径} 。然后就安装好了。也可以直接运行pip install selenium进行安装。

              3、安装Pytest:在cmd窗口运行pip install pytest。
                   Pytest是一个测试框架,类似于Java中的Junit。主要是用它来管理测试用例、输出测试报告等。当然你也可以用其他测试框架,但Selenium官方就是用的这框架,比如Selenium ide所录制的脚本导出成python这种低端语言的脚本后,脚本的结构就是基于pytest的,所以你最好就用这个测试框架。

              4、安装pytest-html :在cmd窗口运行pip install pytest。这个模块是用于生成测试报告。

              5、设置WebDriver:到Selenium官网下载浏览器驱动器geckodriver、chromedriver、IEDriverServer,放到同一个目录,在系统的环境变量中把那个目录路径加入到Path中。(其实上一篇说J版的Selenium也可以做一步,设置完后用起来方便些。)


            好,既然开发环境已经搭建好了,

           二、那我们现在就开始来写一条测试用例吧:打开Python的IDLE->File->New File,输入以下的代码:

import pytest
import time
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

#Pytest框架需要写测试类,类名以Test开头,在类里面写要测试的内容,不能带有init方法。
class TestT1():
 
  #测试运行前的设置
  def setup_method(self,method):
    self.driver=webdriver.Firefox()
    self.vars={}

  #测试运行后的清理工作
  def teardown_method(self,method):
    print("测试完成了")
    self.driver.quit()

  #开始写测试用例,函数名必须以 test_ 开头
  def test_t1(self):
    
    #设置要测试的网页
    self.driver.get("http://www.szlhlib.org.cn/web/index.do")
    time.sleep(2)
    
    #用id找到搜索框、点击、输入搜索关键字、按回车键
    searchField=self.driver.find_element(By.ID, "key")
    searchField.click()
    searchField.send_keys("人性的弱点")
    self.driver.find_element(By.ID, "key").send_keys(Keys.ENTER)
        
    #根据url跳转到新窗口
    for string in self.driver.window_handles:
        self.driver.switch_to.window(string)
        if self.driver.current_url=="http://219.134.63.22/Search/searchshow.jsp?v_tablearray=bibliosm%2C&v_book=on&eventsite=WWW-044010&v_index=all&v_value=%E4%BA%BA%E6%80%A7%E7%9A%84%E5%BC%B1%E7%82%B9&cirtype=&v_startpubyear=&v_endpubyear=&v_publisher=&v_author=&sortfield=score&sorttype=desc&pageNum=10":
           break
    time.sleep(5)
    
    #点击其中一个搜索结果
    self.driver.find_element(By.PARTIAL_LINK_TEXT,"《人性的弱点》").click()
    
    #根据url跳转到新窗口    
    for string in self.driver.window_handles:
        self.driver.switch_to.window(string)
        if self.driver.current_url=="http://219.134.63.22/Search/searchdetail.jsp?v_tablearray=bibliosm,&v_recno=583597&v_curtable=bibliosm&site=null":
           break         
    time.sleep(2)

    #写断言,检验打开的网页确实有这个内容
    assert self.driver.find_element(By.CSS_SELECTOR, ".title").text == "卡耐基经典全集 : 《人性的弱点》《美好的人生》/ (美)卡耐基著;詹衡宇译 卡耐基经典全集 : 《人性的弱点》·《美好的人生》 = The Classic Works of Dale Carnegie/ (美)戴尔·卡耐基(Dale Carnegie)著;詹衡宇译"
 

        好,写完代码之后将它保存为一个py文件,文件名以test_ 开头。

        三、然后在cmd界面输入运行测试用例的命令,比如:pytest E:\copy\Selenium\test_lib.py --html=./report.html  。py文件的路径自己改。

        四、运行完之后会显示测试结果,并显示出测试报告的保存路径,比如:generated html file: file://C:\Users\***\report.html ,双击就会在浏览器打开了。

       至此,一个完整的自动化测试过程就完成了。

       参考阅读:https://www.cnblogs.com/fnng/p/4768239.html
                         https://blog.csdn.net/weixin_38278993/article/details/90343321

发布了17 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/actionwind/article/details/103530132
今日推荐