Метод нажатия не работает с эмулятором Chrome
Ниже приведены подробности моей настройки:
хром =67.0.3396.87, хромедрайвер =2.40.565498, селен версия 2.53.0
Ниже код эмулятора
public ChromeOptions getChromeEmulators(int width, int height) {
Map<String, Object> deviceMetrics = new HashMap<String, Object>();
Map<String, Object> mobileEmulation = new HashMap<String, Object>();
ChromeOptions chromeOptions = new ChromeOptions();
try {
deviceMetrics.put("width", width);
deviceMetrics.put("height", height);
deviceMetrics.put("pixelRatio", 3.0);
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");
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
}catch (Exception e) {
e.printStackStarce();
}
return chromeOptions;
}
Опция щелчка не работает с эмулятором Chrome, но она работает в браузере Chrome с вышеуказанными версиями. Может кто-нибудь помочь?
1 ответ
Решение
Это известная проблема существования chromedriver со времен нескольких последних версий. Исправления пока нет. На данный момент единственным обходным решением является использование chromerdriver: 2.33.506120 + хром: 61.0.3163.79
Обратитесь к ниже ошибок:
https://bugs.chromium.org/p/chromedriver/issues/detail?id=2144&desc=2
https://bugs.chromium.org/p/chromedriver/issues/detail?id=2172
В качестве альтернативы, вы можете попробовать JavascriptExecutor (хотя это не так часто)
JavascriptExecutor script click. JavascriptExecutor js = (JavascriptExecutor)
driver; js.executeScript("arguments[0].click();",element);