Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Selenium 2 WebDriver:如何验证已接收并满足映像请求?_Php_Selenium_Webdriver - Fatal编程技术网

Php Selenium 2 WebDriver:如何验证已接收并满足映像请求?

Php Selenium 2 WebDriver:如何验证已接收并满足映像请求?,php,selenium,webdriver,Php,Selenium,Webdriver,有没有一种好的方法可以检查Selenium2WebDriver中是否已经收到并用php实现了对图像的GET请求,比如 起初,我认为我可以发出一个XHR请求并向responseText发出警报(),使用assertEquals将预期字符串与实际输出进行比较。很快意识到这是行不通的,因为我想看到我正在测试的页面的网络请求 经过进一步研究,我发现了两种截然不同的可能性: 首先是captureNetworkTraffic(Sauce实验室支持部门正在等待响应,以确定这是否可行): 第二种选择(我不完全

有没有一种好的方法可以检查Selenium2WebDriver中是否已经收到并用php实现了对图像的GET请求,比如

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

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

  • 首先是captureNetworkTraffic(Sauce实验室支持部门正在等待响应,以确定这是否可行):

  • 第二种选择(我不完全理解)是设置代理服务器


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

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

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

如果您使用类似Browsermob的代理,您可以在测试运行期间查询请求,因为代理具有API(例如,获取浏览器发出的最新请求并断言它是POST)

似乎有一个PHP库来包装与Browsermob实例的交互

所以,在你的测试中

  • 启动代理
  • 使用代理设置创建驱动程序
  • 转到所需页面
  • 断言请求是在Browsermob中发出的

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

谢谢您,Robbie。我对这件事茫然不知所措,现在我更明白你的解释了。如果你觉得它涵盖了你的问题,请接受答案