c# - 检测selenium中的ajax请求

标签 c# ajax selenium

我正在使用 selenium 测试单页应用程序。我想进行测试以确保该应用仅在需要时返回服务器。

selenium 中有没有一种方法可以断言没有发生 ajax 请求或已经发生 ajax 请求并检查 ajax URL?

我目前正在通过寻找加载 div 的存在来测试它,但这并不是我真正想要测试的,并且在本地机器上测试时它不是很稳定,因为请求有时会超过测试执行。

最佳答案

WebDriver 中没有直接的方法来检测您的 ajax 请求。看到这个问题。 https://code.google.com/p/selenium/issues/detail?id=141

但我可以想出一个变通办法。 要求您的开发人员在页面源代码中放置一个隐藏的 div。每当他们进行 ajax 调用时,请他们用标志更新此 div。

使用 WebDriver,您可以轻松读取此 Div 的标志并进行断言。

您还可以使用 C# 或 java 中的内置 WebClient 库来实现此目的。

此博客中详细描述了这种方法。 https://rogerkeays.com/how-to-get-the-http-status-code-in-selenium-webdriver

如果你只是想看看有没有ajax请求发生,你可以使用webDriver中的javascriptexecutor类。看下面的代码

IJavaScriptExecutor jsScript = driver as IJavaScriptExecutor;
if(!(Boolean)jsScript.ExecuteScript("return jQuery.active == 0"))
retrun "ajax request occured";

关于c# - 检测selenium中的ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530342/

相关文章:

java - JSF ajax 标签中无法执行参数

php - Ajax 循环每秒从 $.post 获取数据

python-3.x - Selenium webdriver python 元素屏幕截图无法正常工作

c# - 将浏览器缩放设置为 80% 的 ChromeOptions

java - 给定一个webelement,单击它会导致页面重新加载吗?

c# - linq中的'orderby'使用字符串数组c#

c# - 从 Windows 服务打印 PDF

javascript - 何时何地不成功: value executes in jQuery Ajax method?( header 位置未更改)

c# - Sharepoint.Utility 替换

c# - .NET TCP 服务器稳定性问题