Тестирование stripe.redirectToCheckout с использованием selenium

#selenium #selenium-webdriver #stripe-payments

#селен #selenium-webdriver #stripe-платежи

Вопрос:

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку оформления заказа на странице домена Stripe (selenium теряет сеанс). Я использую токены JWT, поэтому вопрос в том, как мне получить доступ к localStorage, чтобы получить токен, а затем передать его в браузер (я не уверен, что это действительно сработает, поэтому, если есть какой-то другой способ, пожалуйста, помогите мне). Я получил этот код перед выполнением теста:

 const { Before, After } = require('cucumber');
const { Builder } = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const config = require('../config');

let driver;

Before(async () => {
  driver = await new Builder().forBrowser('firefox');
  if (config.headlessBrowser === 'true') {
    const screen = {
      width: 1920,
      height: 1200,
    };
    driver = driver
      .setFirefoxOptions(new firefox.Options().headless().windowSize(screen));
  }
  driver = driver
    .build();
  driver.manage().window().maximize();
  exports.driver = driver;
});

After(() => {
  driver.quit();
});
 

И тесты для нажатия кнопки отправки и ожидаемого URL-адреса при перенаправлении:

 Then('I press stripe checkout button', {timeout: waitTime}, async () => {
    await d.driver.findElement(By.className('SubmitButton')).click();
})

Then(/I should be redirected to "(.*)"/, {timeout: waitTime}, async (path) => {
    await d.driver.wait(until.urlIs(config.url   path), waitTime);
});
 

Я вижу, что он пытается перенаправить меня на правильный URL-адрес успеха, но, к сожалению, он выходит из системы (я предполагаю, что это происходит из-за потери сеанса).

Комментарии:

1. Я недостаточно знаю о Selenium, чтобы понять, является ли это чем-то специфичным для Stripe или вообще связано с тем, как работает selenium. Однако в целом рекомендуется не проводить автоматические тесты против Stripe подобным образом, вместо этого рассматривая эти части как черный ящик и тестируя до и после (т. Е. Переходите к целевой странице успеха или неудачи, возможно, запускайте некоторые веб-хуки).

2. Есть пользователь @Salami, который управлял e2e тестированием stripe.redirectToCheckout, к сожалению, у меня всего 49 репутаций, и я не могу оставить ему комментарий.