【问题标题】:Switching between Mobile view & Desktop view of Chrome browser in Selenium在 Selenium 中的 Chrome 浏览器的移动视图和桌面视图之间切换
【发布时间】:2022-04-12 16:45:19
【问题描述】:

我有一个要求,我想在移动视图和桌面视图中测试系统,因此它要求我的代码能够在中途视图之间切换,例如首先在移动视图中测试 TC1,然后在移动视图中测试 TC1桌面视图,然后是移动视图中的 TC2 和桌面视图中的 TC2,依此类推。 当我们启动浏览器时,它会在普通桌面视图中打开,我使用以下代码将其转换为移动视图 -

deviceMetrics.put("width", 414);
deviceMetrics.put("height", 1400);
deviceMetrics.put("pixelRatio", 3.0);
Map<String, Object> mobileEmulation = new HashMap<>();
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);

有没有办法可以在同一会话中将浏览器转换为桌面视图?

【问题讨论】:

  • 你能试着清除那些地图deviceMetrics.clear()mobileEmulation.clear()然后做driver.get("desktop view URL")
  • 这对我不起作用

标签: java selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

由于您不需要在同一测试用例中在桌面模式和移动模式之间切换,因此解决问题的最简单方法是在测试中传递一些参数。我猜您使用的是 TestNG 还是 jUnit?只需传递布尔参数isMobileMode
在这种情况下,您可以简单地

if(isMobileMode){
    chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
}

那里,而所有其余的行都不会改变。

【讨论】:

  • 我也想到了同样的方法,我在另一个项目中也这样做了,但是当前项目只有一个测试方法,它需要在单次运行中在移动视图和桌面视图之间切换使用上述方法我将不得不在 TestNG.xml 中使用 2 个不同的测试
  • 我不确定我是否理解你。您是否会使用带有 2 个不同 testng.xml 文件的 TestNG 运行这个单一测试?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
相关资源
最近更新 更多