Mobile ChromeDriver中的移动仿真

Mobile ChromeDriver中的移动仿真,mobile,webdriver,selenium-chromedriver,Mobile,Webdriver,Selenium Chromedriver,如果将WebDriver与Chrome一起使用(通过Chromedriver),则可能需要模拟移动视口特性。类似地,您可能希望在桌面上自动化测试,而不必在Android上使用合适的Chrome设置 如何做到这一点?ChromeDriver在2.11中添加了移动模拟功能 完整文档: 我的笔记如下: 在Python中使用mobile_仿真功能选项创建驱动程序: driver = self.CreateDriver( mobile_emulation = {

如果将WebDriver与Chrome一起使用(通过Chromedriver),则可能需要模拟移动视口特性。类似地,您可能希望在桌面上自动化测试,而不必在Android上使用合适的Chrome设置


如何做到这一点?

ChromeDriver在2.11中添加了
移动模拟功能

完整文档:

我的笔记如下:

在Python中使用mobile_仿真功能选项创建驱动程序:

 driver = self.CreateDriver(
        mobile_emulation = {
            'deviceMetrics': {'width': 360, 'height': 640, 'pixelRatio': 3}})
目前,您可以模拟devicepixelratio、useragent、视口高度和宽度

对于mobile_仿真dict:

  • deviceName
    :如果使用,则必须是唯一的属性。与Chrome中的a匹配(例如,
    “Google Nexus 5”
  • deviceMetrics
    :可以包括宽度(int)、高度(int)、像素比率(double)的dict,如上所示
  • userAgent
    :在请求头和导航器对象上欺骗的字符串

ChromeDriver在2.11中增加了
移动模拟功能

完整文档:

我的笔记如下:

在Python中使用mobile_仿真功能选项创建驱动程序:

 driver = self.CreateDriver(
        mobile_emulation = {
            'deviceMetrics': {'width': 360, 'height': 640, 'pixelRatio': 3}})
目前,您可以模拟devicepixelratio、useragent、视口高度和宽度

对于mobile_仿真dict:

  • deviceName
    :如果使用,则必须是唯一的属性。与Chrome中的a匹配(例如,
    “Google Nexus 5”
  • deviceMetrics
    :可以包括宽度(int)、高度(int)、像素比率(double)的dict,如上所示
  • userAgent
    :在请求头和导航器对象上欺骗的字符串

这是最新的chromedriver官方版本()

java中的示例:

final DesiredCapabilities dc = DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY, new ChromeOptions() {
{
    setExperimentalOption("mobileEmulation", new HashMap<String, Object>() {
            {
                put("deviceName", "Google Nexus 5");
            }
        });
    }
});

ChromeDriver driver = new ChromeDriver(dc);
final DesiredCapabilities dc=DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY,新ChromeOptions(){
{
setExperimentalOption(“mobileEmulation”,新HashMap()){
{
put(“deviceName”、“谷歌Nexus 5”);
}
});
}
});
ChromeDriver驱动器=新的ChromeDriver(dc);

这是最新的chromedriver官方版本()

java中的示例:

final DesiredCapabilities dc = DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY, new ChromeOptions() {
{
    setExperimentalOption("mobileEmulation", new HashMap<String, Object>() {
            {
                put("deviceName", "Google Nexus 5");
            }
        });
    }
});

ChromeDriver driver = new ChromeDriver(dc);
final DesiredCapabilities dc=DesiredCapabilities.chrome();
dc.setCapability(ChromeOptions.CAPABILITY,新ChromeOptions(){
{
setExperimentalOption(“mobileEmulation”,新HashMap()){
{
put(“deviceName”、“谷歌Nexus 5”);
}
});
}
});
ChromeDriver驱动器=新的ChromeDriver(dc);

移动模拟选项在上一个ChromeDriver版本(V2.11)中实现。使用WebDriverJ,您必须将其作为属性添加到capabilities对象中

var webdriver = require('selenium-webdriver');
var capabilities = {
  browserName: 'chrome',
  chromeOptions: {
    mobileEmulation: {
      deviceName: 'Apple iPhone 5'
    }
  }
};
var
  driver = new webdriver
  .Builder()
  .withCapabilities(capabilities)
  .build();


driver.get('http://google.com');

var bool = false;
setTimeout(function () {
  bool = true;
}, 9000);
driver.wait(function() {
 return bool;
}, 10000);

driver.quit();

mobileEmulation选项在上一个ChromeDriver版本(V2.11)中实现。使用WebDriverJ,您必须将其作为属性添加到capabilities对象中

var webdriver = require('selenium-webdriver');
var capabilities = {
  browserName: 'chrome',
  chromeOptions: {
    mobileEmulation: {
      deviceName: 'Apple iPhone 5'
    }
  }
};
var
  driver = new webdriver
  .Builder()
  .withCapabilities(capabilities)
  .build();


driver.get('http://google.com');

var bool = false;
setTimeout(function () {
  bool = true;
}, 9000);
driver.wait(function() {
 return bool;
}, 10000);

driver.quit();

到有效设备名称的链接可能应该被修复?到有效设备名称的链接可能应该被修复?谢谢这很有用,因为官方文档不提供webdriver的信息。谢谢!这很有用,因为官方文档不提供webdriver JS的信息