Serenity 如何 运行 测试 chrome 模拟器(chrome 网络浏览器中的移动模式)
Serenity how to run on tests chrome emulator (mobile mode in chrome web browser)
我是 Serenity 的新手,我想 运行 在 chome 网络浏览器中的移动模式下进行测试,它被称为移动仿真。我已经参考了这个 link 并使用 selenium java 我已经设法做到了。
https://chromedriver.chromium.org/mobile-emulation
我需要对 Serenity 做同样的事情。
谁能告诉我需要做什么?它可以添加到 属性 文件中,如果是那么如何?
例如,对于 iPhone 6/7/8 Plus,您可以使用 "serenity.browser.width=414" 和 "serenity.browser.height=736" Serenity 属性 (http://thucydides.info/docs/serenity-staging/#_serenity_system_properties_and_configuration) 并将它们放入 serenity.properties 项目根目录下的文件
link you provided 给你 Java 代码:
Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Nexus 5");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
WebDriver driver = new ChromeDriver(chromeOptions);
对 "serenity chrome options" 的简单搜索会导致(第一次命中!)this page,它说:
In Serenity, you would pass these using properties prefixed with the chrome_preferences
prefix
所以也许是这样的:
chrome_preferences.mobileEmulation.deviceName = "Nexus 5"
您需要创建一个新包,然后在该包下,您可以通过创建一个应实现 DriverSource 的 class 来实现自定义驱动程序来处理移动仿真。此外,在您的 serenity.properties 文件中进行以下更改。
class CustomeDriver implements DriverSource {
Webdriver driver;
@Override
public WebDriver newDriver() {
Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "iPhone 6");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
driver = new ChromeDriver(chromeOptions);
return driver;
}
@Override
public boolean takesScreenshots() {
return true;
}
}
webdriver.driver = provided
webdriver.provided.type = mydriver
webdriver.provided.mydriver = **screenplay**.CustomeDriver
serenity.driver.capabilities = mydriver
-->剧本是包名
最后,您需要通过调用getDriver()..navigate().to("https://www.google.com");
来获取驱动程序
我是 Serenity 的新手,我想 运行 在 chome 网络浏览器中的移动模式下进行测试,它被称为移动仿真。我已经参考了这个 link 并使用 selenium java 我已经设法做到了。 https://chromedriver.chromium.org/mobile-emulation
我需要对 Serenity 做同样的事情。
谁能告诉我需要做什么?它可以添加到 属性 文件中,如果是那么如何?
例如,对于 iPhone 6/7/8 Plus,您可以使用 "serenity.browser.width=414" 和 "serenity.browser.height=736" Serenity 属性 (http://thucydides.info/docs/serenity-staging/#_serenity_system_properties_and_configuration) 并将它们放入 serenity.properties 项目根目录下的文件
link you provided 给你 Java 代码:
Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Nexus 5");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
WebDriver driver = new ChromeDriver(chromeOptions);
对 "serenity chrome options" 的简单搜索会导致(第一次命中!)this page,它说:
In Serenity, you would pass these using properties prefixed with the
chrome_preferences
prefix
所以也许是这样的:
chrome_preferences.mobileEmulation.deviceName = "Nexus 5"
您需要创建一个新包,然后在该包下,您可以通过创建一个应实现 DriverSource 的 class 来实现自定义驱动程序来处理移动仿真。此外,在您的 serenity.properties 文件中进行以下更改。
class CustomeDriver implements DriverSource {
Webdriver driver;
@Override
public WebDriver newDriver() {
Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "iPhone 6");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
driver = new ChromeDriver(chromeOptions);
return driver;
}
@Override
public boolean takesScreenshots() {
return true;
}
}
webdriver.driver = provided
webdriver.provided.type = mydriver
webdriver.provided.mydriver = **screenplay**.CustomeDriver
serenity.driver.capabilities = mydriver
-->剧本是包名
最后,您需要通过调用getDriver()..navigate().to("https://www.google.com");