总结:确定可以定位到元素,但是对元素操作失败的时候,可以尝试直接用 JS 修改元素属性。
换成 JS 就好了,多谢大佬鸭
好了,换成 JS 就行了,好神奇呀。多谢多谢
定位的语句换了也不行。这个地方没有滚动条,等等我试试加一个鼠标滑动看看行不行。
后面还有几个大佬建议试试 JS,都试试吧。感觉用 JS 应该是可以的。
还是这样,跟之前报的错是一样的:
loc is ('xpath', "//tr[@id='tr_1']/td[2]/input[@name='name_1']"), loc type is <class 'tuple'>
Traceback (most recent call last):
......
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <input id="row1_name" class="input_name" name="name_1" value="" type="text"> is not clickable at point (880, 194). Other element would receive the click: <td>...</td>
我改下试试,应该不是这个问题,我的 Xpath 在浏览器里试过的,可以定位到需要的元素。
加 -c 鸭, -c 是跳过断言失败的错误
试试 hrp run 路径 -g -c
-g 是生成报告
-c 是跳过错误
在命令行执行 hrp run -h 有详细的参数介绍。
另:HttpRunner 有官方群了,有飞书群跟微信群,可以加一下里面有很多大佬。
好的,辛苦辣!
其实 get 请求还好,我在 python 函数里把数字转成字符串就能用了。但是 post 这种带数据类型的请求就不行。
你好,我用的hrp version v4.0.0
版本。
我们有一个接口,参数是用户的 uid,psw,还有一个随机数,我用${get_random()}
调用 debugtalk.py 里写的方法。具体的测试用例如下:
-
name: ******
request:
method: GET
url: ******
params:
dispatcher: $dispatcher
password: $password
rand: ${get_random()}
validate:
- eq: ["status_code", 200]
- eq: ["body.error", 0]
extract:
totle_user_info: "body.msg"
get_random
方法如下:
def get_random(f=10000000, t=99999999) -> int:
return int(randint(f, t))
这是 hrp 运行之后测试报告日志里的截图:
好的, 晚上回去答一下 HttpRunner 核心用户的问卷, 希望我也能为这么棒的软件贡献一点想法
关注了,希望你们越做越好!
刚刚把报告用 Chrome 打开又看了一遍,发现 log 详情里是有滚动条的,可以往下翻,看到了断言的相关信息。之前用 Firefox 打开的时候 log 详情里没得滚动条,也没法滑动,就没看见。
破案了,我很傻,抓到异常后直接调用 on_stop() 函数就好了。
是 UDP, 我不是很理解为什么开发选择这个协议
昂,应该是不用排序的,可能是我走进了死胡同。
对的,就是你理理解的这样。
现在只是做登录,登录的信息不会非常大,因此没考虑分包问题。
我还没有看过开发的代码,你提供了一个非常棒的思路,我可以参考下开发他们的代码,谢谢!
你好,我要测试的是登录时候的功能。这个过程需要向服务器发送多个数据包。发送的跟接收到的数据是通过 protobuf 序列化跟反序列化的,我接收到数据后需要根据发送时使用的协议写不同的处理方法。因此我需要对接收到的数据进行排序。
我现在的想法就是上面说的,把接收到的数据的编号放在一个字典里面,然后有一个循环一直在检查有没有对应编号的返回内容,如果有,就执行对应的处理数据的方法。