【问题标题】:creating a devtools session with selenium 4 using remotewebdriver使用 remotewebdriver 创建与 selenium 4 的 devtools 会话
【发布时间】:2021-08-12 12:02:09
【问题描述】:

试图运行 webdriver contianer 和 selenium 4 在创建 devtools 会话后我得到:

class org.openqa.selenium.remote.RemoteWebDriver cannot be cast to class org.openqa.selenium.chrome.ChromeDriver 运行时:

scenarioContext.setDevTools(((ChromeDriver) scenarioContext.getDriver()).getDevTools());  

我该如何解决这个问题?我需要以某种方式将 remotewebdriver 转换为 chromedriver 才能使用 devtools。

【问题讨论】:

  • 您能否添加您的整个测试类以及您正在使用的 Testcontainers 版本的信息?

标签: java selenium testcontainers


【解决方案1】:

在 Selenium 3 中,ChromeDriver 有自己的继承自 RemoteWebDriver 类的实现。在 Selenium 4 中,ChromeDriver 继承自 ChromiumDriver(它扩展了 RemoteWebDriver)。 ChromiumDriver 类具有访问开发工具的预定义方法。

【讨论】:

  • 关于 testconconainers 由于浏览器是在容器中启动的,它们显然是远程的,因此不能使用“本地”驱动程序 - 当我的驱动程序对象是 RemoteWebDriver 类型时,如何启动 devtools 会话?跨度>
【解决方案2】:

这是官方文档中使用带有 RemoteWebDriver 的 DevTools 的示例:https://www.selenium.dev/documentation/webdriver/bidirectional/chrome_devtools/

    ChromeOptions chromeOptions = new ChromeOptions();
    WebDriver driver = new RemoteWebDriver(new URL("<grid-url>"), chromeOptions);
    driver = new Augmenter().augment(driver);
    DevTools devTools = ((HasDevTools) driver).getDevTools();
    devTools.createSession();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 2017-12-19
    • 1970-01-01
    • 2012-03-21
    • 2018-12-12
    • 2017-06-26
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多