• 使用selenium grid与BrowserMobProxyServer联合使用


    背景:项目主要是做埋点数据,要使用 BrowserMobProxyServer,它相当于做一个代理,在你访问一个网页时,通过代理,获取打开网页的数据,对比你需要对比数据,所以这个工具提供获取页面请求的功能,因为我这里是使用的grid分发,demo如下

    public class fg {
    
    	public static void main(String[] args) {
    		String browser = "chrome";
    		BrowserMobProxyServer proxy = null;
    		// TODO Auto-generated method stub
    		DesiredCapabilities brwosers = null;
    		try {
    			System.out.println("使用的平台进行启动的浏览器,使用的浏览器为:" + browser);
    			System.setProperty("webdriver.chrome.driver", "resources/chromedriver.exe");
    			proxy = new BrowserMobProxyServer();
    			int port = 8750;
    			proxy.start(port);
    			Proxy seleniumProxy = ClientUtil.createSeleniumProxy(new InetSocketAddress("10.32.5.199", port)); //IP地址一定是你运行的ip地址,不然会提示代理设置错误的
    			brwosers = DesiredCapabilities.chrome();
    			brwosers.setCapability(CapabilityType.PROXY, seleniumProxy);
    			RemoteWebDriver driver = new RemoteWebDriver(new URL("http://10.40.6.232:4444/wd/hub"), brwosers);
    			driver.manage().window().maximize(); // 设置窗口为最大
    			// 获取driver的session
    			String getSession = driver.toString().substring(driver.toString().indexOf("(") + 1,
    					driver.toString().indexOf(")"));
    			// get请求,获取在hub上分发到某台电脑运行
    			Map<String, String> getIP = Pub.get("http://10.40.6.232:4444/grid/api/testsession?session=" + getSession);
    			Gson gson = new Gson();// 从返回内容中获取到需要的内容
    			Map<String, Object> map = new HashMap<String, Object>();
    			map = gson.fromJson(getIP.get("Response"), map.getClass());
    			String proxyId = (String) map.get("proxyId");
    			System.out.println("服务器运行的ip为:" + proxyId);
    			driver.get("https://login.rosewholesale.com/m-users-a-sign.htm");
    			Har har = new Har();
    			proxy.newHar("login.rosewholesale.com/m-users-a-sign.htm");
    			har = proxy.getHar();
    			har.writeTo(new java.io.File("C:\a.txt"));
    			proxy.stop();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    

      获取的数据

  • 相关阅读:
    Web 日志分析过程
    nginx系列之九:lua服务
    Linux网络编程之IO模型
    从URL输入到页面展现到底发生什么
    CentOS 日常运维十大技能
    以MySQL为例,详解数据库索引原理(1)
    Elasticsearch的特点以及应用场景
    Ubuntu1804编译安装LNMP
    golang 高级
    Centos7 安装 Redis
  • 原文地址:https://www.cnblogs.com/chongyou/p/9293659.html
Copyright © 2020-2023  润新知