在 selenium 中检测 ajax 个请求
Detecting ajax requests in 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 class。看下面的代码
IJavaScriptExecutor jsScript = driver as IJavaScriptExecutor;
if(!(Boolean)jsScript.ExecuteScript("return jQuery.active == 0"))
retrun "ajax request occured";
我正在使用 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 class。看下面的代码
IJavaScriptExecutor jsScript = driver as IJavaScriptExecutor;
if(!(Boolean)jsScript.ExecuteScript("return jQuery.active == 0"))
retrun "ajax request occured";