Транспортир, проверяющий, равен ли текущий URL строковому URL

Я пытаюсь проверить, изменился ли текущий URL-адрес страницы после нажатия кнопки отправки на правильный URL-адрес. Я пытался сделать это разными способами, которые нашел в сети, но ничего не получалось. Иногда проблема заключается в том, что невозможно выполнить равенство для «объекта url» и «строки», а иногда и для чего-то еще. Одно, конечно, ошибка при запуске теста. Вы можете помочь мне? Спасибо.

Вот мой stepdefinition.js

expect(browser.getCurrentUrl()).to.equal("https://myurl.com/eng/homepage.html");

Вот моя ошибка:

E/launcher - expected { Object (flow_, stack_, ...) } to equal 'https://myurl.com/eng/homepage.html'

[15:34:28] E / launcher - AssertionError: ожидалось, что {Object (flow_, stack_, ...)} будет равно 'https://myurl.com/eng/homepage.html'

Учитывая сообщение об ошибке.

yong 01.06.2018 15:42

Я добавил это по вопросу

Spicchio 01.06.2018 15:53

Добавляем это сюда. Некоторое время назад я ответил на аналогичный вопрос о Chai с TypeScript. stackoverflow.com/questions/42839202/…

cnishina 02.06.2018 11:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
1 940
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте сделать:

expect(browser.getCurrentUrl()).toEqual("https://myurl.com/eng/homepage.html");

Привет, @BlueScoreMan, спасибо за твой ответ. К сожалению, у меня есть это сообщение об ошибке: E / launcher - Недопустимое свойство Chai: toEqual. Вы имели в виду "равный"? [16:02:59] E / launcher - Ошибка: недопустимое свойство Chai: toEqual. Вы имели в виду "равный"?

Spicchio 01.06.2018 16:04

Он использовал встроенный API утверждений Jasmine (который требует написания тестового примера от Jamsine). Но из вашего данного кода кажется, что вы используете chai как libaray утверждения.

yong 02.06.2018 01:21
Ответ принят как подходящий

browser.getCurrentUrl () возвращает обещание. Вам нужно будет решить эту проблему с помощью .then (), как показано ниже:

Опция 1) Используйте только chai

// protractor conf.js
onPrepare: function() {
    var chai = require('chai'),
        chaiAsPromised = require('chai-as-promised');

    chai.use(chaiAsPromised);
    global.expect = chai.expect;
    // make `expect`as global, so you can use it anywhere is your code
}

browser.getCurrentUrl().then(function(currentUrl){
  expect(currentUrl).to.equal("https://myurl.com/eng/homepage.html");
})

Вариант 2) Используйте chai и chai-as-promised вместе:

// protractor conf.js
onPrepare: function() {
    var chai = require('chai'),
        chaiAsPromised = require('chai-as-promised');

    chai.use(chaiAsPromised);
    global.expect = chai.expect;
    // make `expect`as global, so you can use it anywhere is your code
}

expect(browser.getCurrentUrl()).to.eventually
      .equal("https://myurl.com/eng/homepage.html");

Avinashs15 спасибо за ответ. Даже в этом случае он возвращает мне ошибку: E / launcher - Невозможно прочитать свойство «равно» из undefined [16:42:38] E / launcher - TypeError: Невозможно прочитать свойство «равно» из undefined Эта ошибка относится к строка: "currentUrl.to.equal (" myurl.com/eng/homepage.html "); ", где currentUrl не определено

Spicchio 01.06.2018 16:45

@Spicchio попробуйте использовать expect(currentUrl).to.equal('whatever url you're using');

demouser123 01.06.2018 20:17

Другие вопросы по теме