你这样写,一样可以定位到吧://span[contains(text(),'测试勿动!!!!')]/../../../td[6]
问题收集一下直接帖子问吧,我加的群平常基本都在吹水。
一般是网站的反机器人机制拦截的。
首先你要去掉你 webdriver 的签名,再者是补全你浏览器的身份信息。
你可以参考这篇文章,https://www.cnblogs.com/zihkj/p/12583657.html。
当然你需要做的可能不止是这些,反反爬是相对繁琐。
可以用参数化构建,动态配置要执行的 shell 命令。类似让你同事在一个下拉列表里选择要执行的模块,构建的时候再由 Jenkins 拼接成要执行的命令行。
楼上的答案都是正解,如果都做了还是未能调用成功的话,应该把调用后的报错内容发出来看看
入参明文写哪都行,用 beanshell 在请求前对入参做加密
上边的监听要加在你登录动作的前边,官方文档:https://playwright.dev/python/docs/next/api/class-page#page-event-request
这是定位到了控件,还获取到了提示框里的返回,你可以用这个事件监听你实际的请求。
page.on("request", lambda request: print(">>", request.method, request.url))
或者开个录屏
无头模式有个小坑的,默认分辨率是 800*600,在 webdriver 和 playwright 里会判断当前分辨率下控件是否被遮挡,遮挡就报错点不到了。所以平常最好是调整跟你平常的浏览器分辨率一致,实际调试的时候也要加上截图才好定位问题。
是的,我这个 mock 行为是用例步骤的一环,实际实践的系统是 UI 自动化测试,做登录拿 token 只是前置初始化的环节,这个系统剩余的测试场景都是登录后的验证。实际执行测试不同系统的需要做的处理应该不同。