我有一个用例,我将通过selenium web-driver填写给定网站上的职业表格,之后我点击提交按钮,我想知道,表格是否成功提交或不。
在这种情况下,基本上有2种情况可能,
a)站点在职业页面上通过java脚本填充错误
b)前端以ajax请求的形式调用服务器,并得到一些响应。
有什么方法可以确定浏览器是否在点击时进行ajax调用,如果它正在进行ajax调用,那么该调用的响应状态代码是什么?
答案 0 :(得分:0)
在我的项目中,我使用了这样的东西:
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()以获取所有响应,而不仅仅是标头。 之后,您可以序列化响应,甚至解析它并尝试查找文本