#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 репутаций, и я не могу оставить ему комментарий.