初始化一个driver
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Google Nexus 5");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new MobileChromeDriver(capabilities);
但是针对一些按钮,移动版的网站js绑定的touch事件,实际执行的时候,会报错。翻墙查询了,发现需要重新实现下ChromeDriver的TouchScreen方法
public class MobileChromeDriver extends ChromeDriver implements HasTouchScreen{
private RemoteTouchScreen touch;
public MobileChromeDriver(Capabilities capabilities) {
super(capabilities);
touch = new RemoteTouchScreen(getExecuteMethod());
}
public TouchScreen getTouch() {
return touch;
}
}
使用MobileChromeDriver初始化浏览器,这样就可以支持touch事件了。
记录自动化测试过程中的遇到的各种坑