在过去的两天里,我一直试图找到一种方法来启动具有不同配置文件的Chrome,但无济于事。 无论我做什么,Selenium为chrome加载的配置文件总是一些临时配置文件,如“C:\ Users \ DARKBO~1 \ AppData \ Local \ Temp \ scoped_dir14308_25046 \ Default”
我尝试过以下代码:
ChromeOptions options = new ChromeOptions();
options.AddArgument(@"user-data-dir=C:\SeleniumProfiles\Default");
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("chrome://version");
首先,我尝试直接从Chrome文件夹使用配置文件的目录,但没有用。然后我创建了一个新文件夹并将配置文件移到那里,我已经尝试在C:\和D:\中执行此操作。没有任何区别。 我已经尝试运行user-data-dir参数,就像它当前在代码中一样,并且在它前面。我试过使用没有@符号的双反斜杠,仍然没有。无论我做什么,配置文件目录始终是Selenium临时目录。
P.S。我使用chrome user-data-dir=C:\SeleniumProfiles
命令通过命令提示符创建的当前C:\ SeleniumProfiles目录
P.S。 2:我的错误非常简单,我忘了将选项放在新驱动程序的构造函数中。正如Tarun明确指出的那样,user-data-dir
仅向Chrome提供包含配置文件的目录,然后我们需要使用profile-directory
参数来提供包含所需配置文件的子目录。
答案 0 :(得分:5)
你根本不使用选项对象。
IWebDriver driver = new ChromeDriver();
应该是
IWebDriver driver = new ChromeDriver(options);
编辑-1 - Chrome个人资料和用户
Chrome具有用于存储配置文件的用户数据目录。在此目录中,可以维护多个配置文件。可以使用两个参数
如果仅指定user-data-directory
,则将使用其中的Default
目录。如果指定了profile-directory
,则使用user-data-directory
内的该目录
答案 1 :(得分:0)
如果您从要查找的计算机上的浏览器配置文件开始,则可以
C#编码:
通过在运行程序的位置创建一个名为“ profile”的文件夹,可以添加所有配置文件信息,插件等。等等。我们已经复制了data文件夹中的所有内容,并在打开浏览器“ ChromeOptions”以硒化您的个人资料文件等时使用了
答案 2 :(得分:0)
您可以尝试以下代码:(对我有用)
webview.configuration.preferences.javaScriptEnabled = true
webview.configuration.preferences.javaScriptCanOpenWindowsAutomatically = true
webview.configuration.allowsInlineMediaPlayback = true
webview.configuration.allowsAirPlayForMediaPlayback = true
答案 3 :(得分:0)
将 user-data-dir 设置为 C:\Users[your-username]\AppData\Local\Google\Chrome\User Data
完整代码:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
private IWebDriver _driver { set; get; }
public YourConstructor()
{
_driver = CreateBrowserDriver();
}
private IWebDriver CreateBrowserDriver()
{
try
{
var options = new ChromeOptions();
options.AddArgument("test-type");
options.AddArgument("--ignore-certificate-errors");
options.AddArgument("no-sandbox");
options.AddArgument("disable-infobars");
//options.AddArgument("--headless"); //hide browser
options.AddArgument("--start-maximized");
//options.AddArgument("--window-size=1100,300");
//options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
// Profile [Change:User name]
options.AddArgument(@"user-data-dir=C:\Users\Haddad\AppData\Local\Google\Chrome\User Data");
var service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
service.SuppressInitialDiagnosticInformation = true;
return new ChromeDriver(service, options);
}
catch
{
throw new Exception("Error: Chrome is not installed.");
}
}