【问题标题】:how to track ajax requests and responses through selenium webdriver?如何通过 selenium webdriver 跟踪 ajax 请求和响应?
【发布时间】:2021-09-13 21:26:37
【问题描述】:

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

有什么方法可以让我识别浏览器是否在点击时进行 ajax 调用,如果是在进行 ajax 调用,该调用的响应状态码?

【问题讨论】:

    标签: ajax selenium selenium-webdriver webdriver


    【解决方案1】:

    在我的项目中,我正在使用这样的东西:

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

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多