精华内容
下载资源
问答
  • 虽然在2017年已经开始接触了selenium,期间是断断续续执行自动化测试,因为还有其他测试任务,培训任务要执行…前期建议大家能够学习python基本语法(python基础教程)任务搭建自动化测试框架,并能有效方便的进行...

    背景

    为了更好的发展自身的测试技能,应对测试行业以及互联网行业的迭代变化。自学python以及自动化测试。

    虽然在2017年已经开始接触了selenium,期间是断断续续执行自动化测试,因为还有其他测试任务,培训任务要执行…

    前期建议大家能够学习python基本语法(python基础教程)

    任务

    搭建自动化测试框架,并能有效方便的进行测试,维护成本也要考虑其中。

    过程

    我的自动化框架可能不成熟,因为是自学的。请多包涵。也请大佬指导~

    20190317092204798.png

    common

    包含:基本的公共方法类,比如HTML报告、Log处理、发送邮件、基本页面对象等

    其中pageObject里面是对各个测试系统操作页面的一个封装,以后用例的方法直接继承即可。可多次调用,维护起来比较方便。

    conf

    基本的系统参数配置信息,可以包含url,正确用户的信息,简单日志级别,某些输出位置,邮件信息等

    data

    对于数据驱动或者其他测试用例中需要测试的数据,之后测试用例流程不变,可以直接在文档中进行测试数据的修改。暂时采用excel。也可以采用csv,xml等等方法

    log

    日志输出,暂时包括了 log输出,htmlreport输出以及img的保存。

    test

    其中包含testcase以及testsuite两个模块

    testcase 负责编写测试用例如果某个功能有多个py文件编写可以再新建一个目录。

    testsuite 就是测试套件,可以按需求进行选择需要的测试项(包含测试用例以及测试类)

    注意:使用ddt则不可以再使用addTest方式单独添加测试用例了。

    1

    代码部分

    - common中的BasePage

    class BasePage():

    global logg

    logg = LogHandler().logger

    def __init__(self,driver,url=None):

    self.wd = driver

    self.wd.implicitly_wait(5)

    self.actions = ActionChains(self.wd)

    if url :

    self.url = url

    else:

    self.url = self.server_url_conf()

    #浏览器行为的一些方法

    def get_conf_url(self):

    self.wd.get(self.url)

    self.wd.maximize_window()

    logg.debug("enter conf_url : " + str(self.url))

    def brower_close(self):

    return self.wd.close()

    def brower_quit_all(self):

    return self.wd.quit()

    ... 下面还有刷新,前进后退等

    #定位 这里通过 By.xx 方法

    def find_web_element(self,*loc):

    #self.wd.find_element(*loc)

    return self.wd.find_element(*loc)

    #元素操作

    def type_text(self,loc,text):

    return self.wd.find_element(*loc).send_keys(text)

    def clear_text(self,*loc):

    return self.wd.find_element(*loc).clear()

    def submit_func(self,*loc):

    return self.wd.find_element(*loc).submit()

    def click_btn(self,*loc):

    return self.wd.find_element(*loc).click()

    #鼠标相关

    def mouse_move_to_element(self,*loc):

    elem = self.find_web_element(*loc)

    self.actions.move_to_element(elem).perform()

    ... 下面还有点击,双击,右击的一些方法

    #获取信息行为

    def get_web_url(self):

    return self.wd.current_url

    def get_title(self):

    return self.wd.title

    def get_element_text(self,*loc):

    return self.find_web_element(*loc).text

    #元素是否存在 是 True

    def check_element_isexist(self,loc):

    isexist = False

    try:

    EC.presence_of_element_located(loc)(self.wd)

    isexist = True

    except Exception as e:

    isexist = False

    logg.debug(' isexist or not :',exc_info = True)

    return isexist

    def check_element_has_text(self,loc,text):

    pass #省略

    def check_element_isdisplayed(self,*loc):

    pass #省略

    #生成图

    def __inser_img(self,passorfailed,imgname):

    time_loc = time.strftime("%m%d_%H%M%S",time.localtime())

    file_path = os.path.abspath(__file__)

    file_path = os.path.join(file_path+"/../../log/%s_%s.png" %(imgname,time_loc))

    self.wd.get_screenshot_as_file(file_path)

    logg.debug('insert_%s_img %s ' %(passorfailed,(file_path)))

    def insert_error_img(self,imgname):

    self.__inser_img("error",imgname)

    def insert_success_img(self,imgname):

    self.__inser_img("success",imgname)

    def insert_debug_img(self,imgname):

    self.__inser_img("debug",imgname)

    def server_url_conf(self):

    self.host = readconfig.ReadConfig().getserver('host')

    self.port = readconfig.ReadConfig().getserver('port')

    urlvalue = self.host + ":" + self.port

    return urlvalue

    if __name__ == '__main__':

    test = BasePage(webdriver.Chrome())

    test.get_conf_url()

    common中登录页的页面对象

    包含了页面的一些方法比如

    输入用户名,输入密码,点击登录

    test中的 logintestcase

    则直接使用 登录页面对象的 输入用户名,输入密码,点击登录即可

    后期维护,如果元素变动,则只需要修改页面对象代码而对用例则无需修正

    class AioLogin(BasePage):

    global logg

    logg = LogHandler().getlog()

    username_loc = (By.NAME, "username")

    password_loc = (By.CSS_SELECTOR, "input[type='password']")

    login_loc = (By.CLASS_NAME, "login-btn")

    login_loc_oem = (By.ID,"submit")

    check_login_loc = (By.CLASS_NAME,"error-tip")

    elements = [username_loc,password_loc,login_loc,check_login_loc]

    log_menu = (By.CSS_SELECTOR,"[name='log']")

    logg.debug(elements)

    def set_username(self,username):

    self.clear_text(*self.username_loc) #直接使用BasePage的方法

    self.type_text(self.username_loc,username)

    logg.info('Enter username: ' + username)

    sleep(0.1)

    ... 其他

    logintest

    这里使用了ddt数据驱动方法

    from ddt import data,ddt,unpack

    @ddt

    class TestLogin(unittest.TestCase):

    global logg

    logg = LogHandler().getlog()

    @classmethod #该类方法,执行中只会启动一次。区别于setUp的 每个用例都执行一遍

    def setUpClass(cls):

    cls.test = aiologinpage.AioLogin(webdriver.Chrome())

    cls.test.get_conf_url()

    # print('start TestSearch')

    @classmethod

    def tearDownClass(cls):

    # TestLogin().logg.info("brower quit")

    TestLogin().test.brower_close()

    pass

    logindata = ReadExcel().getValue('login')

    @data(*logindata)

    @unpack #当有多组数据时,需要unpack

    def testcase2(self,username,passwd,result):

    logg.info(username+" " + passwd +" " +str(result))

    self.test.set_username(username) #用例直接使用登录页面对象,后期除了修改测试用例,否则无需变动

    self.test.set_password(passwd)

    self.test.type_login_btn()

    # 断言登录结果和预期结果是否一致

    self.assertTrue(self.test.check_login_result(result),

    msg="\r login_test fail \r username :%s \r passwd : %s " %(username,passwd))

    if __name__ == '__main__':

    unittest.main()

    其他页面

    比如我有个 创建设备分组的页面

    我必须要先登录才可以执行下面的操作

    此时,可以从conf中获取成功登录的用户名和密码,把correct_login方法写在登录页面对象中。

    def correct_login(self):

    self.get_conf_url()

    self.userpasswd = self.correct_userpasswd_conf()

    self.set_username(self.userpasswd[0])

    self.set_password(self.userpasswd[1])

    self.type_login_btn()

    之后,其他页面初始化时候直接调用这个correct_login即可登录

    测试套件添加方法

    TestSuite方法

    #添加一个类

    st1 = unittest.makeSuite(TestLogin)

    #单独添加多个用例

    st = unittest.TestSuite(map(TestClassName,[‘testcase1',‘testcase2']))

    st = unittest.TestSuite(TestClaseeName(‘testcase1'))

    #添加一个或者多个测试用例

    st2 = unittest.TestSuite()

    st2.addTests(map(TestCaseClassName,[‘testcase2',‘testcase1']))

    st2.addTest(TestCaseClassName(‘testcase1'))

    #添加一个类

    st2.addTest(unittest.makeSuite(TestClassName))

    TestLoader 方法

    discovery 发现脚本

    st = unittest.TestLoader().discovery(“dir_path”,pattern=“a*.py”)

    #loadTestFromTestCase 加载 测试类

    st1 = unittest.TestLoader().loadTestsFromTestCase(TestLoginCheck)

    st2 = unittest.TestLoader().loadTestsFromTestCase(TestLogin)

    stt = unittest.TestSuite()

    stt.addTests([st1,st2])

    本文标题: python3+selenium自动化测试框架详解

    本文地址: http://www.cppcns.com/jiaoben/python/254487.html

    展开全文
  • Python selenium自动化定位不到元素,该如何解决?
  • 这样生成的报告中,断言通过的用例就是pass,断言失败的就是error ![图片说明](https://img-ask.csdn.net/upload/201709/11/1505115163_849069.png) 请问如何在监听断言的同时让HTMLTestRunner生成的结果中是有fail...
  • Python Selenium测试视频培训教程,该课程是Selenium3自动化测试教程,基于Python语言。所讲知识包括自动化测试基础、Python基础、Selenium IDE、Selenium webdriver、以及自动化测试模型。...
    Python Selenium自动化测试视频教程—931人已学习 
    
    课程介绍    
    201712101019007030.jpg
        Python Selenium测试视频培训教程,该课程是Selenium3自动化测试教程,基于Python语言。所讲知识包括自动化测试基础、Python基础、Selenium IDE、Selenium webdriver、以及自动化测试模型。
    课程收益
        对自动化测试有清晰的认识,并能进行web自动化测试
        对python 和selenium 都可以入门,在工作和面试中提高自身价值。
    讲师介绍
        刘亚洲 更多讲师课程
        精通各种功能自动化测试,QTP,selenium等工具
    课程大纲
      第1章:软件测试基础
        1. 初识软件测试  8:53
        2. 软件测试基础  18:24
        3. 自动化测试基础-什么项目适合自动化测试  9:27
        4. 自动化测试基础-工具介绍  9:40
      第2章:Python基础
        1. Python基础-简单语句  12:13
        2. Python基础-条件和循环语句  19:41
        3. Python基础-数组  14:09
        4. Python基础-字典  17:15
        5. Python基础-函数  16:20
        6. Python基础-异常  11:53
        7. Python基础-类(一)  15:05
        8. Python基础-类(二)  19:52
        9. Python基础-模块  16:02
      第3章:Selenium基础
        1. Selenium IDE的使用  13:25
        2. Selenium IDE的命令  16:03
        3. Selenium IDE的断言和验证  20:36
        4. Selenium IDE的脚本导出和WebDriver API  12:56
      第4章:Selenium WebDriver API
        1. Selenium WebDriver 元素定位(一)  22:49
        2. Selenium WebDriver 元素定位(二)  15:38
        3. Selenium WebDriver 元素定位(三)  18:20
        4. Selenium WebDriver 元素定位(四)  16:39
        5. Selenium WebDriver 浏览器操作  7:48
        6. Selenium WebDriver 元素操作  21:00
        7. Selenium WebDriver鼠标键盘事件  14:51
        8. Selenium WebDriver 获得验证消息  19:12
        9. Selenium WebDriver等待时间  20:21
        10. Selenium WebDriver定位一组元素  11:52
        11. Selenium WebDriver窗口和表单切换  8:46
        12. Selenium WebDriver处理弹出框  5:31
        13. Selenium WebDriver文件上传与下载  12:26
        14. Selenium WebDriver操作cookie  13:37
        15. Selenium WebDriver截图  12:43
        16. Selenium WebDriver如何处理验证码  7:49
      第5章:自动化测试模型
        1. 自动化测试模型(设计思想)  11:12
        2. Python对TXT文件的处理  9:57
        3. Python对xml文件的处理  13:37
        4. Python对Excel文件的处理  18:09
        5. 生成测试报告  20:23
    大家可以点击【 查看详情】查看我的课程
    展开全文
  • title:用语获取当前页面的标题 current_url:用户获得当前页面的URl text:获取搜索条目的文本信息

    title:用语获取当前页面的标题

    current_url:用户获得当前页面的URl

    text:获取搜索条目的文本信息

    展开全文
  • Python selenium —— selenium自动化测试成神之路

    万次阅读 多人点赞 2016-09-17 00:33:04
    很多都是明显的语法问题,一问方知,今天刚刚学selenium,之前也没有语法基础,没学过Java,没学过Python,就跑来搞selenium,想玩自动化。每当看到这样的同学,总是很想吐槽。今天博主也不是想要吐槽,只

    Python selenium —— selenium与自动化测试成神之路

    忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习。

    在群里总是会遇到很多人问低级问题,写了一个selenium脚本,却执行失败,跑到群里来问,大神,这里为什么会报错?很多都是明显的语法问题,一问方知,今天刚刚学selenium,之前也没有语法基础,没学过Java,没学过Python,就跑来搞selenium,想玩自动化。每当看到这样的同学,总是很想吐槽。今天博主也不是想要吐槽,只是想跟大家谈谈我认为的正确的自动化学习路径。

    1. 首先要搞明白几个问题

    本来想写一些东西,但忽然发现虫师已经对这个问题总结很到位了,所以我也就不想多说什么,放上链接,学自动化测试之前,先去看看吧

    在做自动化测试之前你需要知道的

    自动化是用机器代替手工做一些事情。作为一个测试人员,做自动化一般是指接口自动化与UI自动化。(接口也是指对外的部分,通过各种协议,各系统或模块之间交流的接口。)接口性价比更高,但不代表UI自动化没有价值。

    2. 编程语言基础

    很多想学自动化测试的同学都忽略了编程语言的重要性。很大一部分测试人员不懂编程,也不想学编程,但如果你想要学习自动化,那编程是必须的!

    你可能会觉得QTP就不需要编程,录制回放就可以了。这是大错特错的,QTP要想玩的溜,VB是必须的。selenium想要玩的溜,Java或者Python是必须的!(selenium并不局限于这两种语言,但是你用其他语言玩,别怪我没有提醒你,你会遇到很多麻烦,而且还找不到人能跟你交流,你的成长速度会慢得多)

    很多人没有学语言,直接上来搞selenium,我认为这是一种本末倒置的行为,没有语言基础,想学会自动化,是走到了弯路上,到达目的地时间要更久。

    那么学Java还是Python?这个要取决于你对那种语言更熟悉一些,同时要看测试团队所使用的语言,如果团队用Java,那你就学Java。如果你既没有语言基础,测试团队也没有指定的语言,那么我建议你学Python,Python相对Java更简单,学习成本要低一些。

    确定了要学习的语言,博主便推荐一些学习资料:

    1. 如果你一点语言基础都没有,那么我推荐你先把《笨办法学Python》中的前45个练习照着敲一遍。(注意:必须得一个个手敲,代码学习重在实践),有个网站,英文版笨办法,推荐给你Learn Python The Hard Way,英文不好?OK,给你个中文版笨办法学Python 下载

    2. 如果你有学过一门语言,了解基本的数据结构和判断、循环之类的,或者你刚刚完成步骤0的练习,我推荐你这个阶段学习Python语言基础。这个阶段有好几本好书,当然,你只需要其中的一本就足够了:《Python核心编程》、《Python基础教程》、《Python简明教程》、《Python入门指南》、《Head First Python》等,这个你去百度便能百度到很多,去京东淘宝逛一逛,看销量最多的也便可知。当然,我推荐你《Python核心编程》,建议买本纸质书。至于其中的内容,你学习完成主干部分即可,最后面的几章关于网络编程、线程与进程的,可以先不看,当遇到这样的问题,可以再来补充这方面的知识。

    3. 跟着廖雪峰的网站学也是可以的 廖雪峰Python教程

    好了,这两个阶段完成之后,我认为你做好了学习selenium的准备,可以开始学习selenium了。

    3. selenium学习,脚本编写

    接下来终于要到学习selenium的时候了,在这个时候,我需要你先去搞清楚几个问题:

    • selenium到底是什么?
    • selenium家族成员,selenium的结构组成。
    • selenium支持的语言,浏览器。selenium操作浏览器需要依赖的驱动,驱动版本与浏览器版本的关系。

    然后还需要再简单学习一些前端的知识:

    • HTML(网页结构,各种标签)
    • Xpath(基本的定位要了解,轴的内容可以在有一定基础之后再学)
    • CSS(简单了解)
    • JavaScript(简单了解)
    • Firebug(开发者工具)的使用(这个经常会用到,必须熟悉,可在selenium学习中逐渐深入)
    • 网络基础知识

    接下来就是学习selenium了,入门推荐虫师的《Selenium2自动化测试实战–基于Python语言》,这本书比较基础,用来入门再合适不过,期间也可混杂着看一些博客,比如我的博客^_^,会给你不少帮助。

    同时不要光看,一定要动手自己写代码,找一个网站,先练基础元素的定位与操作,推荐一个练手网站:http://sahitest.com/demo/index.htm

    基本定位方式熟悉了,就是要对一个正式的网站进行实践了,你可以用你们公司的网站,也可以用某些门户网站,比如58、赶集等等,可以用selenium做一个小爬虫,爬取网站上的一些信息。这个过程中你会遇到各种坑,各种诡异的事情,不要怕,你一定要相信这些坑,前辈们早已替你趟过了。

    一定要善用百度、Google,搞IT的,不会翻墙,不会百度,简直没有资格叫自己是XX工程师,Google的重要性我不想再多言,起码GitHub博客,百度的爬虫是爬不到的

    4. 执行测试,脱离脚本阶段

    恭喜你,你能写脚本了,能写小爬虫从网站上爬东西了,接下来,你得真正开始执行测试了。

    在这个阶段,你必须学习的是Python的doctest和unittest

    学习怎么用断言来添加检查点。

    同时,你要学习怎么将代码中公共的部分抽出来,把测试和业务分离开,学习PageObject思想。

    用testsuite来组织你的测试用例,并学习HTMLTestRunner下载,学习怎么输出报告。

    5. 参数化、配置、日志、简单框架搭建

    你已经能够用unittest组织用例,并输出报告了。这时候,你需要让你的测试更像个样子。

    该学习参数化了,学习xlrd、xlwt操作excel文件,学习xml库操作xml文件,来配置你的数据源,实现参数化。

    还需要学习configParser、pyyaml模块,进行配置文件的操作,将用例中的配置提取出来,写在配置文件里,这样要修改起来就容易多了。

    然后还得学习logging库,学会怎么记录日志,写你自己的日志模块,在用例里加上日志记录。

    到了这儿,基本上,就像个样子了。但是不能把这些东西放在一起,你就需要搭建一个轻量级的小框架,来分层组织你的代码与其他文件,可以参照我的博客简单分享一个轻量级自动化测试框架目录结构设计,还有博主的专栏 从零搭建一个自动化测试框架,教你怎么一步步搭建自己的框架。这下你就能把所有的东西分门别类管理起来,终于有点专业的样子了。

    6. 自动执行,自动发送报告

    简单的框架搭建好了,你也能够每次执行testsuite便可以得到测试报告了。但这时,你又不满足了。

    是的,你应该让它自动执行,自动把报告发到你手里(或者你老大手里,当然,未成熟前不建议这么做)。

    你该学习Jenkins了。别丧气,这个玩意很简单,你也只需要简单的配置便可以让你的测试任务在Jenkins上跑起来了。

    还有,要自动发报告,简单学习下smtplib模块吧,它能让你的报告以邮件的形式发送到团队成员的手中。

    7. 高级货,平台?分布式?界面?

    是不是很有成就感了,QQ群里也有了很多人叫你大神。满满的虚荣心有木有?

    不过,你就满足于这些吗?

    当然不,还有更多想要做的。

    UI的用例执行太慢了,整个分布式的执行怎么样?selenium的grid还没有研究呢。我可以用一台机器控制,让多台机器同时执行我的测试,想想简直碉堡了对不对。

    还能怎么玩?搞个界面怎么样?学学Django、flask、web2py、web.py?挑一个,搞个界面,管理用例,管理测试执行,如何?

    再搞搞数据分析,配个数据库,拿到历史执行数据,搞出来个报表怎么样?

    看看request、suds、socket,把接口测试整进测试平台,怎么样?

    单元测试?嘿嘿嘿,小case。

    再集成个性能测试工具,一块搞到平台里去怎么样?

    8. 现在,大神,可以拿你的平台去卖钱了

    恭喜你,你绝对已经成神了。

    你不仅仅是一个自动化测试工程师了,你已经是一个全栈开发工程师了。还有什么能难得到你的?

    当然,别嘲笑我,博主也是在慢慢往上爬,这些也只是我个人的一些脑洞,一些想法,如果你也有什么想法,可以和博主多交流交流。

    谨以此文,向广大的初学者指点一条博主认为不错的路径,具体你的学习方式、学习过程,见仁见智吧。


    更多关于python selenium的文章,请关注我的CSDN专栏:Python Selenium自动化测试详解

    展开全文
  • 今天学习的是第一个完整的脚本,工具sublime实现:1 打开百度网页2 输入 selenium 进行搜索3 断言网页显示结果报告selenium4 关闭浏览器代码:这里还没有真正用到断言,只是简单对获取内容进行判断。知识点:模拟...
  • assert '西瓜' in select_element.all_selected_options[0].text #断言 select_element.select_by_visible_text('猕猴桃') #通过选项的文本选中 select_element.select_by_value('shanzha') #通过value属性选中...
  • 一、Selenium入门 1、Selenium实现对浏览器的操作 上期我们价绍了Selenium的基础和八个定位元素的方式,这期和大家分享一下webdriver对浏览器的一些操作。 知道如何定位到我们要操作的元素,那么下面我们就要对定位...
  • 一、Selenium入门 本期介绍如何处理警告弹窗,frame切换和滚动条的操作,顺便再说一下如何对页面进行截图,下面直接进入正题开始本期的内容。 1、警告弹窗的处理 有时我们在执行时会弹出一些系统的弹框,这是我们...
  • 5b7a69600001c75206000338-360-202.jpg (15.26 KB, 下载次数: 47)2018-10-28 02:08 上传第1章...1-1 课程介绍第2章 环境搭建本章讲解自动化测试环境的搭建,并通过实际项目实战讲解selenium3的基础知识,对常用的api...
  • 首先对于萌新小白来说听起来python+selenium自动化就觉得很高端,对于不愿意学习的人来说确实有一点高端,但是如果愿意学习,就我自己来说,入门了也不会觉得很神秘。  既然是python+selenium,首要学习的还是...
  • from selenium import webdriver import time from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions ...
  • selenium 提供了三种模式的断言:assert、verify、waitforassert 失败时,该测试将终止。verify 失败时,该测试将继续执行,并将错误记入日显示屏 。也就是说允许此单个 验证通过。确保应用程序在正确的页面上waitf....
  • word":"搜狗"} ''' from selenium import webdriver import sys import time import json import re driver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用 def get_test_data(test_data_file_...
  • /usr/bin/env python3 import time from selenium import webdriver def end_page(next_page): """ 判断是否到了最后一页 :param next_page: :return: """ if "ui-pager-disabled" in next_page....
  • ''' 以下为文件中的测试数据,第一列为函数步骤,第二列为...from selenium import webdriver import sys import time driver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用 def get_test_step_
  • Python Selenium库的使用

    万次阅读 多人点赞 2018-03-07 21:50:29
    Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 2.支持多种操作系统 如Windows、Linux、IOS、Android等。...
  • 自动化测试脚本开发中,经常会用到异常处理,本文通过try except语句块进行断言测试。 例:判断百度首页是否有id为“kw”的元素(其实为百度的搜索输入框)。 代码如下:from selenium import webdriver driver ...
  • 一、判断页面的title其中expected_conditions...首先导入expected_conditions模块,并重命名EC方便以后调用from selenium.webdriver.support import expected_conditions as EC2.打开百度,利用EC.title_is(u'百度一...
  • 接下来,我开始我的第一个webUI自动化脚本,加油!测试用例:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项。测试场景拆分为以下步骤:(1)启动浏览器(Chrome浏览器);(2)...
  • 在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本一般把这种生成测试结果的方法称为断言(assert)。 断言,能够验证应用程序的状态是否同所期望的一致,提供了测试结果是...
  • python教程全解 需要的环境 浏览器(Firefox/Chrome/IE..) Python Selenium Selenium IDE(如果用Firefox) FireBug、FirePath(如果用Firefox) chromedriver、IEDriverServer、phantomjs.exe ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,040
精华内容 1,616
热门标签
关键字:

pythonselenium自动化断言

python 订阅