你可以研究下 ajax 如何跨域
我是直接放在 flask 里面的,没有启动新的服务,所以没有跨域的问题
大致的流程:
后台的保存吗?
@mod.route('/save_test_minder_content.json', methods=['POST', 'GET'])
@user.authorize
def save_test_minder_content():
    log.log().logger.info(request)
    if request.method == 'GET':
        log.log().logger.info('post')
        return redirect("/test_minders")
    if request.method == 'POST':
        info = request.values
        log.log().logger.info('info :%s' %info)
        id = viewutil.getInfoAttribute(info,'id')
        content = viewutil.getInfoAttribute(info,'content')
        minder_id = ''
        if content == '':
            message =  '必填字段不得为空!'
            code = 500
        else:
            test_minder_manage.test_minder_manage().update_test_minder(id=id, fieldlist=['content'],valueList=[content])
            message = 'success!'
            code = 200
        result = jsonify({'code': code, 'msg': message})
        log.log().logger.info(result)
        log.log().logger.info('code is : %s'%code)
        return result
 
            目前只是做了数据加载和保存,暂时不支持多人协作
都是封装 selenium 的方法处理,例如:
def switchIframe(self,driver,para_list):
    method, value = para_list[0], para_list[1]
    # 切换 iframe
    if method=='css':
        method = By.CSS_SELECTOR
    driver.switch_to_frame(driver.find_element(by = method,value=value))
    time.sleep(2)
def switchWindow(self,driver):
    for name in driver.window_handles:
        if name != driver.current_window_handle:
            driver.switch_to.window(name)
    time.sleep(2)
 
            要是有背景调查呢?
可以加我 QQ 896745696
一步步排查吧:
F12 跟踪一下看下请求有没发送,还有参数是否正确
看下你的 js 是不是成功调用了
具体可以参考下我原来的  html 写法
从后台获取用例的完整信息,是在 js 里实现的
html 里的调用:
<script>window.onload =function(){document.getElementById('btn_reset').click();}</script>
 
对应的 js :
/static/scripts/core/test_case.js
// 编辑表单
function get_edit_info(active_id)
  {
    if(!active_id)
    {
      alert('Error!');
      return false;
    }
    $.ajax(
        {
          url: "/test_case.json",
          data:{"id":active_id,"type":"test_case"},
          type: "get",
          dataType:"json",
          beforeSend:function()
          {
            return true;
          },
          success:function(data)
          {
            if(data)
            {
              // 解析json数据
              var data = data;
              var data_obj = data.rows
              // 赋值
              $("#id").val(active_id);
              $("#name").val(data_obj.name);
              $("#steps").val(data_obj.steps);
              $("#description").val(data_obj.description);
              $("#type").val(data_obj.isPublic);
              var isPublic = data_obj.isPublic;
              if(isPublic == 1)
              {
                $("#type").val('公共用例');
                setModule('公共用例');
              }else{
                $("#type").val('普通用例');
                setModule('普通用例');
              }
              $("#module").val(data_obj.module);
            }
            else
            {
              $("#tip").html("<span style='color:red'>失败,请重试</span>");
             // alert('操作失败');
            }
          },
          error:function()
          {
            alert('请求出错');
          },
          complete:function()
          {
            // $('#tips').hide();
          }
        });
    return false;
  }
 
            可以考虑这样:
公共配置里: runGroup = [1,2,3,4]
用例标记:
@pytest.mark.skipif(1 in runGroup,reason='skip')
这样只需要每次在 runGroup 里修改要跑的组列表就可以了
我这边是没问题的,如果你本地用 selenium 可以执行,可以检查一下:
填写 方法就是按 driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[1]/div[2]/form/div[3]/div[2]/div/span/span/div[1]/span/input").send_keys("I:\3333.jpg") 这种格式进行封装的,所以如果 selenium 直接运行 ok ,理论上这样调用也没问题
另外你的这个 xpath 很长,可以的话建议用其他定位方式来替代,比如 id 、class 等
试下用 填写文件 方法,不要用 填写 1
你的 bat 脚本不是还在启动中吗,没有退出的情况下应该是不会执行下面的 logger
其实这时候你的 appium 服务已经起来了,接下来可以试下执行用例
你启动完之后是要做什么? 看你的代码不就是启动 appium 吗?
最好把对数据库的两个基本操作:search,insert 封装好,调用就不用考虑如何连接,如何释放了
试下把这行注释掉,然后手动建库 test_auto_new,再执行 init
新提交了一个修改,应该可以兼容 \ 了。 这是 python 的转译符,默认保存的时候会转换掉
2019-01-03 update:
1.每次执行生成独立的报告目录
2.修改生成方法,用列表方式更便捷。
3.将验证签名合并为同一个用例
如果是我,这种问题还是会提 bug。 产品说的这句话其实是不负责任的,没理由把系统的健壮性交给用户的使用习惯来保障。
如果超过 200 个字符,会报错吗? 还能正常保存吗?
如果因为超过 200 个字符导致页面直接崩掉了,你们运营人员可以忍受吗?
两个 \ 还是 / ?