我想保存 whatsapp web 的 session ,这样我就不必每次打开 whatsapp web 时都扫描二维码。我使用:
options.AddArgument("--user-data-dir=" + FolderPathToStoreSession)
但是二维码
又出现了。
下面是第一次打开whatsapp web 扫描二维码并保存到文件夹的方法:
public static int OpenNewChrome(
string Website,
int TimeToWaitInMinutes,
string FolderPathToStoreSession)
{
ChromeOptions options = null;
ChromeDriver driver = null;
try
{
//chrome process id
int ProcessId = -1;
//time to wait until open chrome
var TimeToWait = TimeSpan.FromMinutes(TimeToWaitInMinutes);
ChromeDriverService cService = ChromeDriverService.CreateDefaultService();
//hide dos screen
cService.HideCommandPromptWindow = true;
options = new ChromeOptions();
//session file directory
options.AddArgument("--user-data-dir=" + FolderPathToStoreSession);
driver = new ChromeDriver(cService, options, TimeToWait);
//set process id of chrome
ProcessId = cService.ProcessId;
driver.Navigate().GoToUrl(Website);
FRM_MSG f2 = new FRM_MSG();
DialogResult r = f2.ShowDLG(" ",
"Did you successfully finish scan bardcode?",
FRM_MSG.MSGIcon.Question,
FRM_MSG.BTNS.Two,
new string[] { "Yes Finish", "Cannot scan qr-code" });
if (driver != null)
{
driver.Close();
driver.Quit();
driver.Dispose();
}
if (r == DialogResult.Yes)
return ProcessId;
return -1;
}
catch (Exception ex)
{
if (driver != null)
{
driver.Close();
driver.Quit();
driver.Dispose();
}
driver = null;
throw ex;
}
}
这是恢复 session 的方法:
public static int OpenOldChrome(
string Website,
int TimeToWaitInMinutes,
string FolderPathToStoreSession)
{
ChromeOptions options = null;
ChromeDriver driver = null;
try
{
//chrome process id
int ProcessId = -1;
//time to wait until open chrome
var TimeToWait = TimeSpan.FromMinutes(TimeToWaitInMinutes);
ChromeDriverService cService = ChromeDriverService.CreateDefaultService();
//hide dos screen
cService.HideCommandPromptWindow = true;
options = new ChromeOptions();
//session file directory
options.AddArgument("--user-data-dir=" + FolderPathToStoreSession);
driver = new ChromeDriver(cService, options, TimeToWait);
//set process id of chrome
ProcessId = cService.ProcessId;
Thread.Sleep(50000);
FRM_MSG f2 = new FRM_MSG();
DialogResult r = f2.ShowDLG(" ",
"Did you wnat to exit?",
FRM_MSG.MSGIcon.Question,
FRM_MSG.BTNS.Two,
new string[] { "Yes", "No" });
if (driver != null)
{
driver.Close();
driver.Quit();
driver.Dispose();
}
if (r == DialogResult.Yes)
return ProcessId;
return -1;
}
catch (Exception ex)
{
if (driver != null)
{
driver.Close();
driver.Quit();
driver.Dispose();
}
driver = null;
throw ex;
}
}
我说的二维码问题又出现了,我只想扫描一次二维码 我使用谷歌浏览器 74 版,网络驱动程序 v 3.141.0。
最佳答案
请检查配置文件文件夹是否正确。一个旧线程here提到您需要将\Default 添加到配置文件路径。
您是否尝试添加此内容以查看是否有帮助
options.addArguments("chrome.switches", "--disable-extensions")
关于c# - 无法使用 Selenium c# 保存 Whatsapp web 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58463761/