Travis selenium не работает - django - stripe - перенаправление javascript
У меня есть тест selenium, который работает на моей локальной машине.
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.............
----------------------------------------------------------------------
Ran 13 tests in 32.510s
OK
Destroying test database for alias 'default'...
Я использую selenium для тестирования stripe checkout. Когда я нажимаю() на кнопку, я получаю перенаправление на stripe checkout.
Работает с javascript из документации stripe:
<script type="text/javascript">
// Create an instance of the Stripe object with your publishable API key
var stripe = Stripe("{{ public_api_key }}");
var checkoutButton = document.getElementById("checkout-button");
const headers = new Headers({
'X-CSRFToken': "{{ csrf_token }}"
})
checkoutButton.addEventListener("click", function () {
fetch("{% url "sale:detail" ordered.pk %}", {
method: "POST",
headers,
})
.then(function (response) {
response_json = response.json();
return response_json;
})
.then(function (session) {
return stripe.redirectToCheckout({sessionId: session.id});
})
.then(function (result) {
// If redirectToCheckout fails due to a browser or network
// error, you should display the localized error message to your
// customer using error.message.
if (result.error) {
alert(result.error.message);
}
})
.catch(function (error) {
console.error("Error:", error);
});
});
</script>
однако когда я делаю тот же тест на travis-ci, я получаю эту ошибку:
selenium.common.exceptions.TimeoutException
из-за:
WebDriverWait(
selenium, timeout
).until(
EC.url_changes(current_url)
)
Итак, url никогда не меняется, когда selenium нажимает на кнопку chekout... Я подозреваю javascript...
У веб-драйвера есть следующие опции:
opts = ChromeOptions()
opts.add_argument("--enable-javascript")
opts.add_argument('--no-sandbox')
opts.add_argument('--no-first-run')
opts.add_argument('--no-default-browser-check')
opts.add_argument('--disable-default-apps')
cls.selenium = WebDriver(chrome_options=opts)
my travis.yml
sudo: true
language: python
python:
- "3.9"
addons:
chrome: stable
before_install:
- wget https://chromedriver.storage.googleapis.com/92.0.4515.107/chromedriver_linux64.zip -P ~/
- unzip ~/chromedriver_linux64.zip -d ~/
- rm ~/chromedriver_linux64.zip
- sudo mv -f ~/chromedriver /usr/local/share/
- sudo chmod +x /usr/local/share/chromedriver
- sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
before_script:
- export DISPLAY=:99.0
- sudo apt-get install xvfb xserver-xephyr tigervnc-standalone-server xfonts-base
- pip install -r requirements_dev.txt
branches:
only:
- master
env: DJANGO_SETTINGS_MODULE="myapp.settings"
dist: focal
script:
- python manage.py makemigrations sale catalogue
- python manage.py migrate
- python manage.py test
спасибо...