如何通过selenium webdriver跟踪ajax请求和响应?

时间:2018-02-27 05:40:40

标签: ajax selenium selenium-webdriver webdriver

我有一个用例,我将通过selenium web-driver填写给定网站上的职业表格,之后我点击提交按钮,我想知道,表格是否成功提交或不。 在这种情况下,基本上有2种情况可能,
a)站点在职业页面上通过java脚本填充错误
b)前端以ajax请求的形式调用服务器,并得到一些响应。

有什么方法可以确定浏览器是否在点击时进行ajax调用,如果它正在进行ajax调用,那么该调用的响应状态代码是什么?

1 个答案:

答案 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()以获取所有响应,而不仅仅是标头。 之后,您可以序列化响应,甚至解析它并尝试查找文本