注意 UserScript 的注释栏里需要加上
// @match http://*.*.*/*
http://../需要是你网址的通配符
你能取到 xpath,就代表它不是 alert 了。优化下 xpath 你可以写成这样。
browser.find_element(By.XPATH,value='//input[text()='确定']')
还识别不到的话,你要附上按钮部分的控制台截图。
打开控制台,出现 taost 后按 F8,会进入调试模式,这个时候会暂停页面。
我用过管理平台,有最佳体验的是 Jira(收费,但有破解版),现在在用的 TAPD(需要收费版才支持测试管理,但免费版已经足以支持日常的项目管理)。
你这样写,一样可以定位到吧://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 只是前置初始化的环节,这个系统剩余的测试场景都是登录后的验证。实际执行测试不同系统的需要做的处理应该不同。
。。。被你这么一说。我怎么没想到用 docker 跑。傻了
这种问题我遇到过的场景是浏览器不兼容。原先可以加载的场景用的浏览器也是 chrome 么,为了进一步分析问题,可以比对两边浏览器的 network,看下是否有差异。
加载不出来,要不是前端报错,要不是后端报错。打开 F12 看下控制台和 network 有没有红色的提示,另外这个问题放问答区比较好,我们搞定了还可以拿积分。
= =,还真不支持,我自己试了下也不行。
你上边说的是轮询获取结果来着,我理解 D 接口应该是一个频次高的业务结果查询,看起来是要把 D 接口拿出来,单独设计压测场景。
看起来更像是代码哪里不对哦,要不加个微信私聊吧
看起来好像跟环境无关了,你这执行什么出现的报错
pip 换个源应该就可以了,pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements
我看到项目原文件的 my.cnf 有一些大小写不敏感的配置
我的文件是下边这样,可以直接覆盖修改安装看看
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
socket =/var/lib/mysql/mysql.sock
log-error =/var/log/mysqld.log
pid-file =/var/run/mysqld/mysqld.pid
symbolic-links=0
# 1GB
max_allowed_packet=1073741824
# 大小写不敏感
# lower_case_table_names=1
# 慢查询
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 3
会导致这个问题的原因会有多个,建议补充下
1.这个弹出框的 html;
2.无法成功点击的代码表现(报错、还是提示定位不到又或者是执行成功了,但是界面实际没有点击);
协助问题定位。
获取 sid 的 BeanShell 预处理程序在每个请求前都会重新执行一次,你可能得发下图里的 BeanShell 是怎么写的,大概率执行第二次的时候失败了。