【问题标题】:Is there a way I can share data between selenium web driver instances?有没有办法在 selenium 网络驱动程序实例之间共享数据?
【发布时间】:2022-11-13 13:20:25
【问题描述】:

我将尝试用一个场景来定义问题,而不是尝试详细解释它,因为我不了解它(显然)。

我正在构建一个 selenium 应用程序,并且正在尝试使用多个 webdriver 实例来加速它的工作。该任务依赖于在网站上登录。

问题是,正在使用的网站是一种网站类型,如果您登录到 #1 会话并尝试通过从不同的设备(或在我的情况下为 webdriver 实例)登录来启动 #2 会话,它会记录您#1会话之外。登录当然是输入用户名和密码。

我认为这是一个解释起来很简单的问题,我只是不知道它背后的术语。

基本上,您可以使用同一站点的多个选项卡并登录,只要您不在浏览器实例之外执行此操作。

这个类比肯定是错误的,但我想你明白了。

我希望我的 webdriver 实例能够共享所需的任何数据,因此它们就像一个浏览会话。

我尝试只使用内置在窗口句柄中的 selenium web 驱动程序,但我对它的工作方式不满意。因此,单个 Web 驱动程序中的新选项卡绝对不是解决方案。

我也尝试过浏览 ChromeOptions 库,但我绝对不了解其中的任何内容,老实说,我什至不知道我在寻找什么。

除此以外没有什么别的了。我无法将问题归结为一个简单的问题,所以我不知道如何以及如何寻找进一步的解决方案:)

【问题讨论】:

  • 我想知道您是否可以让 Selenium 打开多个选项卡,那么您就不需要多个浏览器实例。然后挑战是单独与选项卡交互。也许您可以执行一个操作、切换选项卡、执行另一个操作,然后当您循环回到选项卡 1 时,您可以与页面进行交互?

标签: c# selenium selenium-webdriver webdriver


【解决方案1】:

我试图描述的“数据”是 cookie,并且有一些函数可以从驱动程序实例获取 cookie 并将 cookie 添加到另一个实例。

driver.Manage.AllCookies()
driver.Manage.AddCookie()

非常不言自明:)

希望有一天这对某人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2010-12-14
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2019-11-25
    • 2016-11-03
    相关资源
    最近更新 更多