• 申请开通

  • 之前在一两个小项目里用过一个框架,就是简单用 Excel 维护关键字驱动的测试用例。
    我的使用场景: 在客户现场的一台内网服务器, 简单部署了这个框架,在 Excel 里维护了大约一百多条用例。
    为啥不用数据库维护? 因为想做到资源最小化,因为现场的服务器只是一台 win pc,要是只为这个工具安装个数据库就太麻烦了;
    用例维护麻烦吗? 因为是小项目,只有自己在用,不存在多人读写 Excel 的问题; 而且 Excel 里复制用例、批量查找替换等功能其实挺方便。

  • 图片上传如果是 input 类型,可以试下 填写文件 方法
    弹框的选择看是什么类型,如果是 select 也可以用 选择 方法

  • 估计这些提问的人不会看到这个帖子……

  • {"method":"name","selector":"//*[@id="content"]/div/div/form/textarea"}

    方法是 name , 然后内容是 xpath ? 还是看看你代码吧

  • driver = webdriver.Chrome()
    driver.get('https://www.west.cn/domains/')
    driver.maximize_window()
    driver.find_element(by='name' ,value='searchedDomainName').send_keys('selenium')
    time.sleep(5)
    

    我试了一下,是可以正常输入的。

    要不把你的代码贴上来看看吧, 你的 click 定位方式和输入的定位方式都不一样

  • 看下你的语句是不是格式有问题,send keys 里的引号不是半角啊

  • 为什么我总是频繁跳槽? at December 18, 2018

    看来网上传的 HR 过滤简历的规则在你身上不适用啊? 还是外包公司为了在银行里占位置已经完全顾不上这些了?

  • 我就觉得奇怪, 怎么我两篇没加精的帖子也被收录进来了 😂

  • 话说社区精华帖的列表是有 bug 吗? 翻页之后看到一些帖子没有加精标记。 是过滤除了问题,还是加精标记出了问题?

    https://testerhome.com/topics/17106

  • 测试平台如何持续集成? at December 14, 2018

    个人觉得持续集成最基本的就是有个触发点,可以定时或外部触发测试。 至于用什么实现方式就看你了
    如果后续加上报表和邮件通知之类的功能可能会完善点

  • 测试平台如何持续集成? at December 14, 2018
    1. 写一个集成所有要执行模块的方法
    2. 可以在服务器上定时调起任务, 也可以在 Jenkins 上定时调起你的任务
  • 赞!

  • selenium 定位不了 at December 12, 2018
    1. 看下你要操作的这个元素是什么类型,支不支持 send keys
    2. 不建议全部使用 xpath 定位元素, 多用 id 、name 这些较为稳定的属性
  • 之前做过一个按 key 列表来进行对比的方式, 可以参考一下

    https://testerhome.com/topics/16669

  • TesterHome 论坛图片上传 BUG at December 11, 2018

    这就是 markdown 的图片格式啊,点预览就可以看到实际的图片效果

  • Python3 解析复杂结构的 json at December 11, 2018
    d1 = [{"id" : 1,"name" : "Number1","age" : 11},{"id" : 2,"name" : "Number2","age" : 22},{"id" : "3","name" : "Number3","age" : 33}]
    d2 = {"persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : "2","name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]}
    d3 = {"code" : 200, "persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : True,"name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]}
    
    
    ## 获取  json 数组或json 对象的 key 列表
    def get_json_keys(json_str,json_keys = []):
        if isinstance(json_str,list):
            for json_obj in json_str:
                for key in json_obj.keys():
                    if key not in json_keys:
                        json_keys.append(key)
        elif isinstance(json_str,dict):
            for key in json_str.keys():
                    if key not in json_keys:
                        json_keys.append(key)
        return json_keys
    
    
    ## 将json 数组中相同的 key - value值进行合并
    def get_key_values(json_str,json_keys):
        target_json = {}
        for key in json_keys:
            key_values = []
            for json_obj in json_str:
                if isinstance(json_obj,dict):
                    key_values.append(json_obj[key])
            target_json[key] = key_values
        return target_json
    
    ## 主方法
    def analyse_json(json_str):
        target_json = {}
        json_keys = []
        if isinstance(json_str,list):
            json_keys = get_json_keys(json_str,json_keys)
            target_json = get_key_values(json_str,json_keys)
        elif isinstance(json_str,dict):
            json_keys = get_json_keys(json_str,json_keys)
            for key in json_keys:
                if not isinstance(json_str[key],list) and not  isinstance(json_str[key],dict):
                    target_json[key] = json_str[key]
                else:
                    target_json[key] = analyse_json(json_str[key])
        return target_json
    
    
    print(analyse_json(d1))
    print(analyse_json(d2))
    print(analyse_json(d3))
    
    
    

    输出:

    {'id': [1, 2, '3'], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}
    {'persons': {'id': [1, '2', 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}}
    {'code': 200, 'persons': {'id': [1, True, 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}}
    

    按这样拆分会不会好一点?

  • 明白了。

    或者能否看下有没有对应的接口可以直接调用下载? 感觉上会比 ui 自动化灵活一点。

  • Python3 解析复杂结构的 json at December 11, 2018

    这么多层 if 和 for 嵌套……

  • 为何不直接提需求在后台增加一个定时导单的功能呢? 这比使用 selenium 来操作简单很多吧

  • 一般是指 bug 是在哪个环境发现的, 如果是在测试环境测试时发现的,就填测试环境

  • 确实是, 连上 wifi 之后再打开就正常了

  • 微信翻译内容错误 at December 10, 2018

    优秀

  • 微信翻译内容错误 at December 09, 2018

    难道 eight 是被屏蔽了?

  • 数据表不存在,看下 init.sql 的数据是否已经导入到你的数据库里面。