如何在Serenity托管的Chrome驱动程序中为Nexus 5视图设置移动仿真?
我尝试过这个链接: https://johnfergusonsmart.com/configuring-chromedriver-easily-with-serenity-bdd/
说明设置chrome的首选项。
Chrome preferences
You can also provide more advanced options using the setExperimentalOption() method:
Map<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", downLoadDirectory);
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("pdfjs.disabled", true);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
In Serenity, you would pass these using properties prefixed with the chrome_preferences prefix, e.g.
chrome_preferences.download.default_directory = /my/download/directory
chrome_preferences.profile_default_content_settings.popups = 0
chrome_preferences.pdfjs.disabled=true
由此,我尝试将mobileEmulation设置为
chrome.capabilities.mobile_emulation.device_name= Google Nexus 5
chrome.options.mobileEmulation.deviceName= Google Nexus 5
以及其他一些逻辑变体,但都没有成功。
答案 0 :(得分:0)
我发现在这个问题上帮助我创建自定义WebDriver的最好方法。
我必须创建一个扩展DriverSource的类。然后将其链接到Serenity Properties文件。这将给我提供我需要的驱动程序。
http://www.thucydides.info/docs/serenity/#_custom_webdriver_implementations
您可以通过实施来添加自己的自定义WebDriver提供程序 DriverSource接口。首先,您需要设置以下系统 属性(例如在你的serenity.properties文件中):
webdriver.driver = provided webdriver.provided.type = mydriver webdriver.provided.mydriver = com.acme.MyPhantomJSDriver thucydides.driver.capabilities = mydriver
您的自定义驱动程序必须实现DriverSource接口,如图所示 这里:
public class MyPhantomJSDriver implements DriverSource { @Override public WebDriver newDriver() { try { DesiredCapabilities capabilities = DesiredCapabilities.phantomjs(); // Add return new PhantomJSDriver(ResolvingPhantomJSDriverService.createDefaultService(),
能力); } catch(IOException e){ 抛出新错误(e); } }
@Override public boolean takesScreenshots() { return true; } }
此驱动程序现在可以正常截取屏幕截图。