我创建了两个类。一个类用于 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) }] }
)
答案 0 :(得分:0)
您没有提供代码,但从您收到的错误中可以明显看出您没有初始化驱动程序对象实例。
答案 1 :(得分:0)
我自己解决了这个问题,我在这里做错的是在我的第 2 类中初始化我的 Webdriver 两次,因此它给出了这个错误。