Safari mobile emulation for web app via Selenium

北城以北 提交于 2021-02-10 14:14:56

问题


Need to test responsive design for web app. I understand that browser didn't emulate like real device or even device emulator, but i don't need it. Note: i'm looking for not to run Safari inside emulator, but to activate mobile emulation in Safari

question 1: Is it possible to start Safari via selenium with predefined mobile emulation, like in Chrome here

Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Nexus 5");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
WebDriver driver = new ChromeDriver(chromeOptions);

if answer no(assume it will be no), question 2: is it enough to resize Safari window to required device viewport size?


回答1:


Setting the browser width isn't enough as many of today's web pages use the useragent as a means to determine the device that is viewing the page. Afaik, there is no way and I've been trying to find a solution to this for a while. Safari doesn't give automated control to set the user agent nor the mobile mode of its desktop browser.

There is a way to do what you want here though: https://webkit.org/blog/9395/webdriver-is-coming-to-safari-in-ios-13/

But the requirement is you need an iPhone connected to your laptop to run the test from and you need to add these capabilities to your configuration

safari:deviceType
safari:useSimulator

Read the man file for safaridriver for more info.

If you need to set the useragent, you can do it via the command line, but you need to reset it after https://tarunlalwani.com/post/selenium-change-user-agent-different-browsers/



来源:https://stackoverflow.com/questions/57254429/safari-mobile-emulation-for-web-app-via-selenium

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!