Я сталкиваюсь с этой проблемой, когда выполняю тест транспортира только для того, чтобы выяснить, что он не прошел. Теперь проблема не в том, что реальная функциональность не работает, а, по-видимому, с интервалом ожидания по умолчанию. Код работает нормально, выполняет все операции на веб-странице и только когда вы ожидаете, что зеленая точка выдает ошибку.
Прежде чем кто-либо пометит его как дубликат, я просто хотел бы сказать, что я попробовал описанные ниже подходы, проходя ответы на другой похожий вопрос.
- Включил аргумент в блок "it" и вызвал аргумент после теста.
- Изменено значение default_timeout_interval в файле conf.js на 30 с.
- Пытался использовать Async / await в последней функции, чтобы дождаться выполнения обещания.
Я хотел бы не только найти ответ на этот вопрос, но и если кто-то можетобъясните мне, что именно Транспортир хочет передать здесь. Для меня, как для новичка в JavaScript и Protractor, это выглядит очень расплывчатым сообщением.
Ниже приведен мой файл спецификаций:
describe("Validating Booking for JetBlue WebApplication", function(){
var firstPage = require("../PageLogic/jetBlueHomePage.js");
it("Validating One Way Booking", function(pleaserun){
firstPage.OneWayTrip();
firstPage.EnterFromCity("California");
firstPage.EnterToCity("New York");
firstPage.SelectDepartureDate();
firstPage.searchFlights();
pleaserun();
});
});
Ниже находится файл моей страницы:
var homePage = function(){
this.OneWayTrip = function(){
element(by.xpath("//label[text()=' One-way ']/parent::jb-radio/div")).click();
}
this.EnterFromCity = function(FromCityName){
element(by.xpath("//input[@placeholder='Where from?']")).clear();
element(by.xpath("//input[@placeholder='Where from?']")).sendKeys(FromCityName);
browser.sleep(3000);
element(by.xpath("//ul[@id='listbox']/li[1]")).click();
}
this.EnterToCity = function(ToCityName){
element(by.xpath("//input[@placeholder='Where to?']")).clear();
element(by.xpath("//input[@placeholder='Where to?']")).sendKeys(ToCityName);
browser.sleep(3000);
element(by.xpath("//ul[@id='listbox']/li[1]")).click();
browser.sleep(3000);
}
this.SelectDepartureDate = function(){
element(by.xpath("//input[@placeholder='Select Date']")).click();
browser.sleep(3000);
element(by.xpath("//span[text()=' 24 ']")).click();
}
this.NumberOfPassengers = function(){
element(by.xpath("//button[@pax='traveler-selector']")).click();
}
this.searchFlights = async function(){
await element(by.buttonText('Search flights')).click();
}
};
module.exports = new homePage();
Ниже приведен файл Conf.js:
exports.config = {
directConnect: true,
specs:["TestSpecs/jetBlueBookingTest.js"],
onPrepare: function(){
browser.get("https://www.jetblue.com/");
browser.manage().window().maximize();
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
isVerbose: true,
includeStackTrace: true,
}
};
Обращайтесь за помощью ко всем профессионалам-транспортировщикам, чтобы помочь мне найти это решение и, надеюсь, помочь мне понять концепцию.