Как идеально изолировать и очистить среду между каждым тестом?

Я пытаюсь подключиться к SoundCloud с помощью CasperJS. Что интересно, как только вы вошли в систему и повторно запустили функцию входа в систему, предыдущий вход в систему все еще активен. Прежде чем идти дальше, вот код:

casper.thenOpen('https://soundcloud.com/', function() {
  casper.click('.header__login');

  popup = /soundcloud\.com\/connect/;

  casper.waitForPopup(popup, function() {
    casper.withPopup(popup, function() {
      selectors = {
        '#username': username,
        '#password': password
      };

      casper.fillSelectors('form.log-in', selectors, false);

      casper.click('#authorize');
    });
  });
});

Если вы запустите этот код хотя бы дважды, вы должны увидеть следующую ошибку:

CasperError: Cannot dispatch mousedown event on nonexistent selector: .header__login

Если вы проанализируете журналы, то увидите, что во второй раз вы были перенаправлены наhttps://soundcloud.com/stream Это означает, что вы уже вошли в систему.

Я провел некоторое исследование, чтобы очистить среду между каждым тестом, но кажется, что следующие строки не решают проблему.

phantom.clearCookies()
casper.clear()
localStorage.clear()
sessionStorage.clear()

Технически, мне действительно интересно понять, что здесь происходит. Может быть, SoundCloud построил систему для хранения некоторых переменных на стороне сервера. В этом случае мне придется выйти из системы до входа в систему. Но мой вопрос заключается в том, как я могу идеально изолировать и очистить все между каждым тестом? Кто-нибудь знает, как сделать окружение неподписанным между каждым тестом?

Ответы на вопрос(2)

Ваш ответ на вопрос