Сумерки + полоса = невозможно найти элемент

Я открываю платежную форму в окне, и каждый раз Даск пытается найти элементы ввода на экране. Я пытался добавить pause(3), но это ничего не дало.

Я использую laravel 5.5 и Dusk 2.0.

        $browser->waitFor('.stripe-card iframe', 30);

        // Lets make the switch to iframe
        $browser->driver
            ->switchTo()
            ->frame('__privateStripeFrame5');

        $browser->type('cardnumber', '4242424242424242')
            ->type('exp-date', '12 50')
            ->type('cvc', '123');

Я пытался:

  1. использовал ->pause(3000) до type('cardnumber'), но ничего не сделал
  2. использовал ->keys('input[name=cardnumber]', '4242424242424242'), но ничего не сделал

Ошибка, которую мне дают Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"body textar ea[name='cardnumber']"}

При использовании keys() я получаю: Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"body input[name=cardnumber]"}

Что за сообщение об ошибке?

Jonas Staudenmeir 14.05.2019 21:27

Facebook\WebDriver\Exception\NoSuchElementException: такого элемента нет: невозможно найти элемент: {"method":"css selector","selector":"body textar ea[name='cardnumber']"}

Vlad Vladimir Hercules 14.05.2019 22:09

Что показывает скриншот в tests/Browser/screenshots?

Jonas Staudenmeir 14.05.2019 22:10

Я не вижу iframe на скриншоте

Vlad Vladimir Hercules 14.05.2019 22:11

Я добавил ->pause(3000) - iframe появился и все та же проблема

Vlad Vladimir Hercules 14.05.2019 22:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
5
149
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы порекомендовал всем в подобном положении обновить Laravel до 5.7 и Dusk до 5.0.

В Dusk появился новый метод под названием withinFrame(), который упрощает написание тестов и делает их более понятными:

https://github.com/laravel/dusk/commit/8bfb9f01ae09d1d9ca3ce53e36b1f020c0f8dc8f

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