无法调用“org.openqa.selenium.WebDriver.manage()”,因为“this.driver”为空

时间:2021-05-29 19:59:13

标签: selenium

我创建了两个类。一个类用于 webdriver 初始化,在另一个类中扩展我的第一个类的属性,这样我就不必一次又一次地初始化我的 webdriver,然后使用该 Web 驱动程序对象(来自第一个类)我正在尝试执行一些操作。现在我的 chrome 已初始化,但进一步,它没有在其中执行任何操作,并且显示无法调用“org.openqa.selenium.WebDriver.manage()”,因为“this.driver”为空。 请参考我下面的截图:

[类 1][1]

[类 2][3]

[文件][2]

[3]: https://i.stack.imgur.com/jBOnJ.png`import java.io.IOException;

1 级

//My Schema
const StudentSubscriptionSchema = new mongoose.Schema({
    date: Date,
    expireDate: Date,
    status: String,
    subscriptionId: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'subscriptions'
    }
});

const StudentSchema = new mongoose.Schema({
    account: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'users'
    },
    testSubscriptions: [{
        test: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'tests',
            unique: true
        },
        subscription: StudentSubscriptionSchema
    }]
}, { timestamps: true, optimisticConcurrency: true });


const reqBody = {
        test: req.body.testId, // This is mongoose.Schema.Types.ObjectId
        subscription: {
            date: req.body.subscriptionDate,
            subscriptionId: req.body.subscriptionId ? req.body.subscriptionId : null,
            expireDate: getExpiryDate
        }
    };

//First approach - throwing error if new test is inserted
 student = await STUDENT.findOneAndUpdate(
        { _id: req.params.id },
        { $set: { 'testSubscriptions.$[]': reqBody } },
        { upsert: true }
    )

//Second approach - throwing error if new test is inserted
student = await STUDENT.findOneAndUpdate(
        { _id: req.params.id, 'testSubscriptions.test': req.body.testId },
        { $set: { 'testSubscriptions.$[]': reqBody } },
        { arrayFilters: [{ 'elem.test': mongoose.Types.ObjectId(req.body.testId) }] }
    )

//Third Approach - this is inserting duplicates
student = await STUDENT.findByIdAndUpdate(req.params.id,
        {
            $addToSet: { testSubscriptions: reqBody }
        }, {
        new: true,
        runValidators: true
    });

//Fourth approach - throwing error - Cannot apply $addToSet to non-array field while trying to insert
    student = await STUDENT.findOneAndUpdate(
            { _id: req.params.id, 'testSubscriptions.test': req.body.testId },
            { $addToSet: { 'testSubscriptions.$[]': reqBody } },
            { arrayFilters: [{ 'elem.test': mongoose.Types.ObjectId(req.body.testId) }] }
        )

2 个答案:

答案 0 :(得分:0)

您没有提供代码,但从您收到的错误中可以明显看出您没有初始化驱动程序对象实例。

答案 1 :(得分:0)

我自己解决了这个问题,我在这里做错的是在我的第 2 类中初始化我的 Webdriver 两次,因此它给出了这个错误。