c# - 使用 selenium 作为 Android 设备打开网站
问题描述
我想制作一个“在移动视图中”打开网站的程序,我真的不知道如何调用它,但我希望网站认为我正在使用安卓手机。
我已经尝试使用 ChromeOptions 并更改用户代理,但不知何故它不起作用。
ChromeOptions options = new ChromeOptions();
options.AddArgument("user-agent=Mozilla/5.0 (Linux; Android 8.1.0; Phone) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36");
driver = new ChromeDriver("./", options);
解决方案
该站点有使用移动仿真的详细文档。
此外,ChromeDriver v 2.11之后有 mobileEmulation 选项。对于 C# 使用类似这样的东西,
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.EnableMobileEmulation("Pixel 2");
chromeOptions.AddUserProfilePreference("safebrowsing.enabled", true);
chromeOptions.AddUserProfilePreference("credentials_enable_service", false);
chromeOptions.AddUserProfilePreference("profile.password_manager_enabled", false);
ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"C:\chromedriver");
IWebDriver driver = new ChromeDriver(service, chromeOptions);
您可以输入所需的设备,如 iPhone X、iPad Pro、三星 s7 等。
还要记住,EnableMobileEmulation("deviceName");
deviceName: 要模拟的设备的名称。设备名称必须是 Chrome DevTools Emulation 面板中的有效设备名称。 注意:指定一个无效的设备名称不会抛出异常,但会在驱动启动时在 Chrome 中产生错误。要取消设置移动仿真,请使用 null 作为参数调用此方法。
推荐阅读
- powershell - 无法从任务计划程序中的 Powershell 命令保存日志文件
- laravel - 实时在生产中不起作用(Laravel-echo)
- c# - 排序后的筛选器/选定行无法正常工作
- php - Saving form data from a custom WooCommerce My Account tab
- sql - 在列中使用 select 的值
- puppet - 有没有办法在 Puppet Code 的案例中使用正则表达式的参数或变量
- javascript - redux saga 通道关闭后如何运行同步代码
- corda - Corda - 我们可以(再次)在生产代码中使用 NULL_PARTY 吗?
- android - 如何使用 Xml 按钮移动位图 Imageview?
- sql - 使用循环或动态查询基于字段行为求和