1.背景

因为现在项目是要做分布式,而以前使用谷歌浏览器模拟手机运行做的分布式,是指定在某台机器运行是通过Jenkins配置,来指定服务器,但是这样有一个问题,如果大家都同时配置到某台电脑,那台服务器压力就很大,所以需要根据每台服务器的情况,去分配任务,那我就需要解决第一个问题,如何让模拟器指定ip运行,我的项目的部署方式(分布式)使用的selenium grid 的方式,使用模拟器方式最开始一直使用的是ChromeDriver方式启动,但是这个ChromeDriver方式启动只能是启动本地浏览器,进行手机模拟,不能指定在某台IP上进行运行

最开始看了很多官网资料,https://sites.google.com/a/chromium.org/chromedriver/mobile-emulation ,针对ChromeDriver java没有办法指定IP,而python可以,最开始走了一大圈,想通过ChromeDriver的方法来进行改变,饶了一大圈的弯路,最后想通了一点只要更换启动方式就可以了

以前启动手机模拟代码是这样:

public void initdriver(){

ChromeOptions options = new ChromeOptions();

options.addArguments("--disable-infobars");

Map prefs = new HashMap();

// 是否加载图片

// prefs.put("profile.managed_default_content_settings.images", 2);

options.setExperimentalOption("prefs", prefs);

Map deviceMetrics = new HashMap();

deviceMetrics.put("width", 360);

deviceMetrics.put("height", 640);

deviceMetrics.put("pixelRatio", 3.0);

Map mobileEmulation = new HashMap();

mobileEmulation.put("deviceMetrics", deviceMetrics);

mobileEmulation.put("userAgent",

"Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19");

options.setExperimentalOption("mobileEmulation", mobileEmulation);

System.setProperty("webdriver.chrome.driver", "resources/chromedriver.exe");

driver = new ChromeDriver(options);

}

而现在我只需要把启动方式做更改

ChromeOptions options = new ChromeOptions();

options.addArguments("--disable-infobars");

Map prefs = new HashMap();

// 是否加载图片

// prefs.put("profile.managed_default_content_settings.images", 2);

options.setExperimentalOption("prefs", prefs);

Map deviceMetrics = new HashMap();

deviceMetrics.put("width", 360);

deviceMetrics.put("height", 640);

deviceMetrics.put("pixelRatio", 3.0);

Map mobileEmulation = new HashMap();

mobileEmulation.put("deviceMetrics", deviceMetrics);

mobileEmulation.put("userAgent",

"Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19");

options.setExperimentalOption("mobileEmulation", mobileEmulation);

System.setProperty("webdriver.chrome.driver", "resources/chromedriver.exe");

if(TestngListener2.getProjectCode().contains("platform")){//这里表示使用的平台,为了不影响以前框架使用

System.out.println("使用的平台进行启动的浏览器");

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(ChromeOptions.CAPABILITY, options);

try {

driver = new RemoteWebDriver(new URL("http://10.40.2.114:5555/wd/hub"), capabilities);

} catch (MalformedURLException e) {

e.printStackTrace();

}

}else{

driver = new ChromeDriver(options);

}

}

java模拟器ip_谷歌浏览器模拟手机浏览器且指定IP运行相关推荐

  1. 谷歌模拟器:谷歌浏览器模拟手机调试添加机型

    默认我们发现没有平常开发用的iphone6/7/8机型,不慌. 勾选即可 芜湖,起飞. 注:1.我们在模拟器中看到的尺寸逻辑像素 2.我们开发是基于逻辑像素开发的,而不是物理像素,物理像素是出厂时就设 ...

  2. 用PC上的Chrome 模拟手机浏览器

    在PC上使用chrome谷歌浏览器模拟手机浏览器,最新 chrome 浏览器(需要32以后版本的)都提供了这项功能,可以模拟 android .iphone.meego.黑莓等等多款手机,还有多款手机 ...

  3. 电脑浏览器模拟手机浏览器如何设置

    打开360浏览器,右击空白处,点击"审查元素". 2 点击"审查元素"界面右下角"设置"按钮,如下图所示. 3 点击"Overri ...

  4. 电脑手机模拟器模拟手机浏览器,在线浏览手机网站

    很多手机网站都通过User-Agent来判断当前访问客的浏览器类型,如果是3G智能手机,显示手机版页面内容,如果是电脑浏览器,显示普通电脑版网页内容. 谷歌Chrome电脑浏览器,可以很方便地用来当3 ...

  5. 网络爬虫-模拟手机浏览器抓取数据

    有些网站的数据在PC端很复杂,参数加密很严重,但是移动APP端的就没那么多加密,所以在遇到有些瓶颈的情况下,可以考虑从网页端转到移动端去抓包,爬取数据.这里有两种方法: 一. 使用模拟器下载APP 如 ...

  6. PC上测试移动端网站和模拟手机浏览器

    1. PC上测试移动端网站和模拟手机浏览器 1) PC上测试移动端网站和模拟手机浏览器的5种方法 http://www.jb51.net/softjc/144941.html 2)  结论 使用场景: ...

  7. 用Firefox和Chrome模拟手机浏览器

    用Firefox和Chrome模拟手机浏览器 Firefox浏览器 1.安装三个Firefox插件:wmlbrowser.XHTML Mobile Profile.User Agent Switche ...

  8. firefox+android+平板,Firefox模拟手机浏览器(iOS+Android) – UserAgent Switcher使用方法...

    前两天还讨论了利用Chrome来模拟iOS和Android手机浏览器的方法,今天换成一款同样非常热门的Firefox浏览器,看看它是如何实现模拟手机浏览器的.这里强烈推荐大家使用UserAgent S ...

  9. Python selenium —— 用chrome的Mobile emulation模拟手机浏览器测试手机网页

    很多人发现chrome有项功能,就是在开发者工具里能够模拟手机打开网页,便想能否用selenium对此进行自动化测试.答案当然是yes! 今天博主便给大家分享下如何用chrome的MobileEmul ...

最新文章

  1. 浅谈Horizon DaaS平台 - 崛起的桌面云平台
  2. 3211: 花神游历各国
  3. html-iframe_HTML iframe
  4. 干货|我在 GitHub 上发现了一款骚气满满的字体!
  5. 线性表的链表存储实现
  6. Unity 双击Asset后回调的实现
  7. Java基础学习总结(92)——Java编码规范之排版、注释及命名
  8. C#一次性删除委托中的所有方法
  9. 昔年浅谈成都的百度推广公司靠谱吗这个问题?!
  10. 转载:认识自我,把握机遇 —— 谢恩伟 (二)
  11. Problem J: 零起点学算法89——程序设计竞赛
  12. LINUX检查一个进程内存增长的脚本
  13. 程序员计算器使用方法介绍(快速计算十六进制、八进制的方法)
  14. Java算法面试题(009) 毒酒问题
  15. 软件测试工程师工作总结
  16. qemu 搭建 ARM Linux环境
  17. PDF软件最新版本功能介绍
  18. JavaScript 发明者布兰登·艾克成为 Mozilla CEO
  19. 测试分类-软件开发阶段的各个测试
  20. Ae动态模糊插件ReelSmart Motion Blur

热门文章

  1. YBTOJ:炮塔攻击(网络流)
  2. can you feel my word
  3. 亚马逊云 AWS Systems Manager 代理(SSM 代理)简介
  4. 计算机音乐作品,关于建立声乐作品计算机音乐伴奏曲库的一些思考
  5. 荣耀x6平板支持鸿蒙吗,荣耀平板X6
  6. C#合并多个GeoJSON的多段线
  7. 基于FME实现CAD图的三维多段线批量转多段线工具,dwg三维多段线批量转多段线工具
  8. 红外遥控解码原理及代码实现
  9. android附近的人的实现
  10. 小夜灯方案开发触摸RGB遥控调光小夜灯单片机便携锂电池水晶台灯IC