python - 除了用户代理切换之外的 Selenium 移动浏览器测试因素
问题描述
我想用 selenium 和 chrome 测试多个移动用户代理。我发现当我使用 chrome 扩展“Google Chrome 的用户代理切换器”时(请参阅上面屏幕截图中的信息),大多数网站都会接受 chrome 作为移动版本。但是,如果我使用 selenium :
ua = 'Mozilla/5.0 (Linux; Android 7.0; LG-TP260 Build/NRD90U; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36'
options = webdriver.ChromeOptions()
ua_string = 'user-agent=' + ua
options.add_argument(ua_string)
webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)
行为是不同的,它并不总是被识别为移动 chrome。除了用户代理,还有其他需要设置的因素吗?
解决方案
如果我理解正确,您将无法使用 selenium 在 chrome 上模拟移动行为。
您可以使用可在 selenium / chromedriver 中使用的 EnableMobileEmulation 选项。(C#)
options.EnableMobileEmulation(deviceName);
driver = new ChromeDriver(options);
此代码将使用给定的设备名称以移动仿真模式启动 chrome。您可以拥有自己的自定义设备设置,您可以在其中设置分辨率、用户代理等。
推荐阅读
- c# - 带有 cookie 的音频流 - 登录后 (C# NAudio)
- android - 如何使用 XML 在 Android 中创建此设计?
- node.js - Node.js 在上传时获取视频时长
- jenkins-pipeline - 如何在jenkinsFile中调用jenkins共享库方法
- amazon-web-services - 将 Web 应用程序发布到 Windows 服务器的弹性 beantalk 和 cloudformation 之间的成本不同
- keras - Google Colab 上的 ImageDataGenerator 永远运行
- angular - 我可以将连接字符串放入 AngularFire 的查询中吗?
- html - 当图片增加其大小时,如何将项目对齐到导航栏的顶部?
- spring - 春云 Greenwich x Hoxton x Ilford
- freeswitch - FreeSWITCH:使用 origin_retries 的尝试次数错误