如何使用RobotFramework和Capture HAR文件运行BrowserMob Proxy

时间:2016-02-18 06:36:28

标签: robotframework browsermob-proxy

我已经在robotframework中编写了这段代码

${proxy}=            |  Evaluate |  sys.modules['selenium.webdriver'].Proxy()   sys, selenium.webdriver | 
${proxy.http_proxy}= |  Set Variable           |    127.0.0.1:8080   | 
Create Webdriver     |  Firefox proxy=${proxy} |     
Go To                |  http://www.knowledgefarm.in/tst/a.html | 

我正在从命令行运行BrowserMob代理,如下所示:

browsermob-proxy.bat --address 127.0.0.1 --port 8080

现在,当我运行robotframework时,它会打开浏览器并简单地在页面上显示此消息。

HTTP ERROR: 404

Problem accessing /tst/a.html. Reason:
Not Found
Powered by Jetty:// 

两个问题:

  1. 为什么我的网页未加载。 (如果我删除代理设置,它会起作用)

  2. 解决方法之后,如何指定生成HAR文件以及如何指定HAR文件的位置

1 个答案:

答案 0 :(得分:0)

上面的代码实际上并没有启动代理。要启动代理,您需要运行这些命令。

Create     | http context    |  localhost:8080 |    http    
Post       | /proxy     
${json} | Get Response Body     
${port}    | Get Json Value  | ${json} | /port
${proxy}=  | Evaluate           | sys.modules['selenium.webdriver'].Proxy()  | sys,selenium.webdriver
${proxy.http_proxy}= |  Set Variable |  127.0.0.1:${port}   
Create Webdriver     | Firefox   | proxy=${proxy}   
Go To      | ${LOGIN URL}   

Set Request Body | pageRef=LOGIN&captureContent=false&captureHeaders=true       
PUT        | /proxy/${port}/har 
${json} | HttpLibrary.HTTP.Get Response Body        
OperatingSystem.Create File | D:\\myfile.har  | ${json}