Selenium 2 WebDriver:如何验证图像请求已被接收并完成


Selenium 2 WebDriver: How to verify that an image request has been received and fulfilled?

是否有一种好的方法来检查对图像的GET请求,例如https://api.google.com/v1/__x.gif,是否已收到&实现在Selenium 2 WebDriver与php?

最初我认为我可以发出一个XHR请求并警告()responseText,使用assertEquals将我期望的字符串与实际输出进行比较。很快意识到这是行不通的,因为我想看到我正在测试的页面的网络请求。

经过更多的研究,我发现了两种截然不同的可能性:

  • 首先被捕获networktraffic(等待酱实验室支持的响应,看看这是否可能):

  • 第二个选项(我不完全理解)是设置一个代理服务器。

我是stackoverflow的新手,也是服务器请求的初学者。提前感谢您的帮助!

选项1和选项2相同;您使用代理来捕获网络流量

在Webdriver中创建驱动实例时,您可以设置代理。这是一个服务器和端口,浏览器将通过它引导所有网络流量。代理可以做很多事情,比如创建模拟响应、操纵请求等,但在您的情况下,您希望代理记录发出的请求,转发到所需的服务器,记录响应,并将响应返回给浏览器。

如果你使用像Browsermob这样的代理,你可以在测试运行期间询问请求,因为代理有一个API(例如获取浏览器发出的最新请求并断言它是POST)

似乎有一个PHP库来包装与Browsermob实例的交互https://packagist.org/packages/chartjes/php-browsermob-proxy

那么,在你的测试中;

    <
  • 开始代理/gh>
  • 使用代理设置创建驱动程序
  • 进入所需页面
  • 断言请求是在Browsermob中发出的

当然,另一种更简单的方法是通过seleniuml从html获取图像src url,然后在测试中使用http客户机发出get请求。如果它返回一个图像,那么您可以说来自ing标记的url有效,这对于您的测试来说可能已经足够好了。