忧郁的蓝235 2023-12-12 17:01 采纳率: 30.8%
浏览 6

java.lang.Nul PointerException: Cannot invoke "org.openqa.selenium. WebDriver.manage()"

public WebDriver startBrowser(String browserName, String terminal, String deviceName, String remoteIP, int remotePort, String browserVersion) {
        /* 驱动基本信息参数 */
        this.browserName = browserName.toLowerCase();
        /* 终端设备信息参数 */
        this.terminal = terminal.toLowerCase();
        this.deviceName = deviceName;
        /* hub 信息配置 */
        this.remoteIP = remoteIP;
        this.remotePort = remotePort;
        this.browserVersion = browserVersion;

        /* 初始化驱动的责任链中各个对象 */
        DriverHandler headHandler = new HeadHandler();
        DriverHandler chromeDriverHandler = new ChromeDriverHandler();
        DriverHandler firefoxDriverHandler = new FirefoxDriverHandler();
        DriverHandler operaDriverHandler = new OperaDriverHandler();
        DriverHandler edgeDriverHandler = new EdgeDriverHandler();
        DriverHandler internetExplorerDriverHandler = new InternetExplorerDriverHandler();
        DriverHandler tailHandler = new TailHandler();

        /* 构建一条驱动初始化的完整责任链 */
        headHandler.setNext(chromeDriverHandler).setNext(firefoxDriverHandler).setNext(operaDriverHandler)
                .setNext(edgeDriverHandler).setNext(internetExplorerDriverHandler).setNext(tailHandler);

        /* 通过责任链启动浏览器 */
        this.driver = headHandler.start(browserName, terminal, deviceName, remoteIP, remotePort, browserVersion);

        /* 驱动设置等待时长 */
        long implicitlyWait = Long.parseLong(PropertiesReader.getKey("driver.timeouts.implicitlyWait"));
        long pageLoadTimeout = Long.parseLong(PropertiesReader.getKey("driver.timeouts.pageLoadTimeout"));
        long setScriptTimeout = Long.parseLong(PropertiesReader.getKey("driver.timeouts.setScriptTimeout"));
        // 隐式等待
        driver.manage().timeouts().implicitlyWait(implicitlyWait, TimeUnit.SECONDS);
        // 页面加载等待
        driver.manage().timeouts().pageLoadTimeout(pageLoadTimeout, TimeUnit.SECONDS);
        // JS 等待
        driver.manage().timeouts().setScriptTimeout(setScriptTimeout, TimeUnit.SECONDS);
        /* 窗口最大化 */
        driver.manage().window().maximize();
        log.info((terminal.toLowerCase().equals("h5")) ? ("浏览器:" + browserName + " h5 成功启动!") : ("浏览器:" + browserName + " 成功启动!"));

        return this.driver;
    }

img

img


  • 写回答

1条回答 默认 最新

  • haikuokuangtu 2023-12-12 17:17
    关注

    你的driver没有获取到值,下面也没有判断是否为空。在this.driver那一行打断点调试。

    评论

报告相同问题?

问题事件

  • 修改了问题 12月12日
  • 创建了问题 12月12日

悬赏问题

  • ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
  • ¥50 paddleocr带斜线的0很容易识别成9
  • ¥15 电子档案元素采集(tiff及PDF扫描图片)
  • ¥15 flink-sql-connector-rabbitmq使用
  • ¥15 zynq7015,PCIE读写延时偏大
  • ¥15 使用spss做psm(倾向性评分匹配)遇到问题
  • ¥20 vue+UEditor附件上传问题
  • ¥15 想做个WPS的自动化代码,不知道能做的起不。
  • ¥15 uniApp,生成安卓安卓包后,黑暗主题中间内容不生效,底部导航正常
  • ¥15 斯坦福自动漂移非线性模型反解