【问题标题】:Keeping a persistent browser history on Selenium在 Selenium 上保持持久的浏览器历史记录
【发布时间】:2021-05-27 10:51:24
【问题描述】:

我正在使用 C# 在 MSVC 2019 上运行 Selenium 4.0.0-beta1。

我使用的是 MicrosoftDriver 版本 17.17134.0。

每当我使用 Selenium 执行自动浏览时,会话结束后都不会保存浏览历史记录。我想保持一个持久的浏览历史状态。

我得到了一些答案, Save and load browser history for selenium.

但我不确定如何在 C# 中为 Microsoft Edge 复制 Firefox 的 Java 解决方案。

特别是,我找不到等效的配置文件对象来导入或为浏览器历史创建配置文件。

var edgedriverservice = EdgeDriverService.CreateDefaultService();
var edgeoptions = new EdgeOptions();
var driver = new EdgeDriver(edgedriverservice, edgeoptions);

我已经按照以下方式设置了我的新驱动程序对象,我不确定配置文件对象如何适应上一个链接。

【问题讨论】:

  • 在使用 selenium webdriver 时是否要保留浏览器历史记录?由于 webdriver 每次启动浏览器时都会创建一个新的浏览器配置文件,因此不会保存历史记录。我建议你可以移动到最新的Edge Chromium 浏览器。在这种情况下,您可以通过在每次启动浏览器时告诉 Edge 驱动程序使用相同的配置文件来轻松实现您想要的。
  • 感谢@YuZhou 的评论,是的,这确实是我想做的。我相信我已经在使用 Edge Chromium。但可以肯定的是,我使用的 Edge 版本是 86.0.622.56。你愿意展示一些关于如何为 Edge Chromium 使用相同配置文件的示例代码吗?谢谢。

标签: c# selenium selenium-webdriver microsoft-edge browser-history


【解决方案1】:

是的,您使用的是 Edge Chromium,那么您使用的 WebDriver 不正确。您需要使用与this page 中的 Edge Chromium 版本相同的 WebDriver 版本。您需要点击完整版目录并下载Edge WebDriver版本86.0.622.56。

使用 Edge Chromium 的特定配置文件的示例代码如下:

EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.UseChromium = true;
// Here you set the path of the profile ending with User Data not the profile folder
edgeOptions.AddArgument(@"user-data-dir=C:\Users\yuzhou\AppData\Local\Microsoft\Edge\User Data");
// Here you specify the actual profile folder
edgeOptions.AddArgument("profile-directory=Profile 4");
IWebDriver driver = new EdgeDriver(edgeOptions);
driver.Navigate().GoToUrl("https://www.google.com");

注意:将代码中的路径更改为您自己的。

【讨论】:

  • 再次感谢@yzhou 我设法让这些代码工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
相关资源
最近更新 更多