gpt4 book ai didi

java - Selenium webdriver中的sessionID如何在并行执行期间为每个浏览器实例获取不同的值

转载 作者:行者123 更新时间:2023-12-02 04:29:59 28 4
gpt4 key购买 nike

我知道 Selenium Webdriver 是一个接口(interface),所有浏览器类都实现这个接口(interface),我也知道接口(interface)变量默认是静态的和最终的。当我阅读有关使用 TestNG 的并行执行时,我读到 selenium 命令使用 session ID 传递到正确的浏览器,并且每个实例都有不同的 session ID。我很困惑如何为 Webdriver 接口(interface)的静态最终 session ID 变量分配不同的值?

最佳答案

WebDriver 接口(interface)不包含 session 信息,WebDriver 扩展的 SearchContext 也不包含 session 信息。

RemoteWebDriver 处理大部分业务,它实现了 WebDriver。例如,ChromeDriver 扩展了 RemoteWebDriver。

这允许以下操作:

WebDriver 驱动程序 = new ChromeDriver();

RemoteWebDriver 有一个 sessionId您无法获取 sessionId,因为它在 RemoteWebDriver 中是私有(private)的。

您想要查找 HttpCommandExecutor、RemoteWebStorage 和 WebStorage,远程 session 存储和 session 存储。

最好的方法是使用您的 IDE。在 Eclipse 中,您可以右键单击该类,然后选择“打开声明”

总之,您可以实例化 RemoteWebDriver 的多个实例,每个实例都有自己的 sessionId。当您选择使用 WebDriver 接口(interface)时,您将无法访问该接口(interface)未描述的方法。

顺便说一句:如果您尝试过使用 JavascriptExecutor,您就知道必须将 WebDiver 转换到它。这是因为 RemoteWebDriver 也实现了此接口(interface),但您无法使用 WebDriver 接口(interface)访问其方法。

希望这有帮助...

关于java - Selenium webdriver中的sessionID如何在并行执行期间为每个浏览器实例获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56592331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com