我正在尝试使用我的个人资料中的现有帐户和设置加载带有selenium的Chrome浏览器
我可以使用ChromeOptions来设置userdatadir和profile目录。这会像我想要的那样在浏览器中加载我的个人资料,但是浏览器会挂起60秒并超时,而无需通过任何更多的自动化。
如果我没有使用用户数据目录和配置文件设置,它可以正常使用但不使用我的个人资料。
我所做的阅读指出,一次打开的浏览器不能同一个配置文件,因此我确保在运行程序时没有打开任何内容。即使没有其他浏览器打开,它仍会挂起60秒。
let!(:user) { create(:user) }
context 'user is logged in' do
before { sign_in user }
it 'allows some thing' do
# some expectation....
end
end
它始终挂在GoToUrl上。我不知道还有什么可以尝试的。
答案 0 :(得分:2)
根据您的代码试用版,您尝试加载默认 Chrome个人资料,这将作为最佳做法 >默认Chrome个人资料可能包含以下任一项:
因此,默认 Chrome个人资料可能与您测试规范不符,并且可能会在加载时引发异常。因此,您应始终使用自定义 Chrome个人资料,如下所示。
要创建并打开新的 Chrome个人资料,您需要按照以下步骤操作:
获取系统中 profile-directory 的绝对路径,如下所示:
chrome://settings/
现在使用C:\\Users\\Thranor\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2
方法通过 ChromeOptions 的实例传递 profile-directory 的值以及用户数据 - dir 如下:
AddArgument
执行您的m_Options = new ChromeOptions();
m_Options.AddArgument("--user-data-dir=C:/Users/Me/AppData/Local/Google/Chrome/User Data/Profile 2");
m_Options.AddArgument("--disable-extensions");
m_Driver = new ChromeDriver(@"pathtoexe", m_Options);
m_Driver.Navigate().GoToUrl("somesite");
答案 1 :(得分:1)
如果您想使用默认配置文件运行 Chrome(因为您需要扩展程序),您需要使用其他浏览器(例如 Microsoft Edge 或 Microsoft IE)运行您的脚本,并且您的代码将运行一个 Chrome 实例。
我的 PHP 代码:
char