是否有一种好的方法来检查对图像的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有效,这对于您的测试来说可能已经足够好了。