我有一个用例,我将通过 selenium web-driver 在给定网站上填写职业表单,之后当我单击提交按钮时,我想知道表单是否已成功提交或不是。
这种情况基本上有2种可能,
a) 通过职业页面上的 java 脚本填充错误
b) 前端以ajax请求的形式调用服务器,并得到响应。
有什么方法可以识别浏览器是否在点击时进行ajax调用,如果正在进行ajax调用,则该调用的响应状态代码?
最佳答案
在我的项目中,我使用的是这样的东西:
object response = ((IJavaScriptExecutor) Driver.WebDriver).ExecuteAsyncScript(
"var url = arguments[0];" +
"var callback = arguments[arguments.length - 1];" +
"var xhr = new XMLHttpRequest();" +
"xhr.open('GET', url, true);" +
"xhr.onreadystatechange = function() {" +
" if (xhr.readyState == 4) {" +
" callback(xhr.getAllResponseHeaders());" +
" }" +
"};" +
"xhr.send();", url);
您可以更改 xhr.getAllResponseHeaders() 以获取所有响应而不仅仅是 header 。 之后,您可以序列化响应,甚至解析它并尝试查找文本
关于ajax - 如何通过selenium webdriver跟踪ajax请求和响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49001869/