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

标签 ajax selenium selenium-webdriver webdriver

我有一个用例,我将通过 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/

相关文章:

javascript - 如何防止ajax中给出的 header 值的可见性以进行身份​​验证

python - 用 scrapy 解决 reCAPTCHA

java - 我如何防止 Selenium RC 在我的测试运行时窃取窗口焦点?

jquery - 网络驱动程序异常 : Message: unknown error: jQuery is not defined error in robot framework

testing - 使用 webdriver 上传文件

javascript - 无法使用 AJAX 请求的字符串结果

php - 从 AJAX 调用 Php 函数不起作用

jquery - 使用 Ajax 进行乘法

java - 使用 Selenium 选择无效的 html 标签

selenium-webdriver - Selenium Webdriver - 在屏幕截图中捕获 URL