本来写的UI走查的代码主要场景是web浏览器,少量h5页面校验不值得大费周章用真机去跑
背景:
首先尝试了移动端真机巡检,但是不同机型,需要调试出合适的appPackage以及其它参数
上一段代码:
public AndroidDriver getWebDriverForAPP(){
AndroidDriver appDriver = null;
try {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "1509-A00");
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "6.0.1");
capabilities.setCapability("appPackage", "com.yulong.android.launcher3");
capabilities.setCapability("appActivity", ".Launcher");
capabilities.setCapability("newCommandTimeout", "180");
appDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
} catch (Exception e) {
logger.info("webdriver启动失败:"+e.getMessage());
}
return appDriver;
}
代码跑一段时间,手机有时候就自动重启了,然后暂时不知道哪里有bug。。。
然后就想着,直接在web上走查h5页面,这样一套监控环境就可以了,起初挺好的,直接用webDriver打开对应h5链接即可
后来产品给服务端提需求(在pc环境中访问h5页面直接用pc形式打开)就又不行了,
于是就又想,自己平时经常用chrome浏览器的控制台的仿真模式,是不是可以用这个来搞
于是慢慢人生路,开整,查了查,果然可以,狂喜
话不多说上代码,主要是需要设置需要的deviceName即可:
public WebDriver getWebDriverPCAPP(){
try {
System.setProperty("webdriver.chrome.driver", "驱动的位置chromedriver");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");//无界面参数
chromeOptions.addArguments("--no-sandbox");//禁用沙盒,防止访问受限
chromeOptions.addArguments("--window-size=600,800");//设置打开的大小
chromeOptions.addArguments("--disable-extensions");//禁用扩展
chromeOptions.addArguments("--disable-dev-shm-usage");//overcome limited resource problems
//主要是下面这三行
HashMap<String,String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName","iPhone X");//这里是要使用的模拟器名称,就是浏览器中模拟器中的经常选择的顶部型号
chromeOptions.setExperimentalOption("mobileEmulation",mobileEmulation);//增加本行
webDriver = new ChromeDriver(chromeOptions);
}catch (Exception E){
logger.info("webdriver启动失败:"+E.getMessage());
}
return webDriver;
}
标签:浏览器,chromeOptions,--,selenium,capabilities,addArguments,PC,setCapability,new From: https://www.cnblogs.com/happiness30/p/17359092.html