我正在 Browserstack Automate 上远程使用 Selenium (Python) 运行测试。
目标:我想在 Browserstack 上启动一个 session ,并登录现有的 Chrome 配置文件。
- -- 基本目标:我尝试访问 Whatsapp Web,而不必每次都扫描 QR 码。 (构建自动化 Whatsapp 服务)
因此,第一次创建一个新的配置文件就可以了 - 扫描一次二维码,然后重新使用该配置文件。
方法:我尝试使用 Chrome 选项,并为 user-data-dir 指定一个参数。这是受到其他几个 StackOverflow 答案的启发。
代码:
desired_caps = {
'browser': 'Chrome',
'browser_version': '69.0 beta',
'os': 'Windows',
'os_version': '10',
'resolution': '1024x768',
'browserstack.debug': 'true',
}
desired_caps['browserstack.local'] = True
desired_caps['chromeOptions'] = {}
desired_caps['chromeOptions']['args'] = [r'--user-data-dir=C:\Users\gille\AppData\Local\Google\Chrome\User Data']
driver = webdriver.Remote(command_executor='http://MYBROWSERSTACKHUB', desired_capabilities=desired_caps)
我试图在 Browserstack 上(本地)运行它,但运行时出现以下错误:
“无法初始化类 org.openqa.selenium.os.Kernel32”
See image with Browserstack error
我尝试指定一个尚不存在的新随机配置文件,例如:
desired_caps['chromeOptions']['args'] = [r'--user-data-dir=C:\Users\gille\AppData\Local\Google\Chrome\User Data\ProfileXXX']
但是弹出同样的错误。
(我还尝试了其他对我不起作用的方法: - 保存和重新加载cookie - 更改session_id和session_url(在Browserstack上不起作用))
我的感觉是: - 或者这可能是 Browserstack 的问题, - 或者我包含了错误的 user-data-dir 路径,并且应该使用不同的路径,例如chrome_options.add_argument("user-data-dir="+ os.path.dirname(sys.argv[0])
但我对最后一个不熟悉 - 所以我不确定下一步要采取什么。 你有什么建议吗?
最佳答案
使用如下所示的大写字母:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");
caps.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new URL(CloudConfiguration.URL), caps);
关于python - Selenium Browserstack session 中出现问题 : loading existing Chrome profile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767466/