Dusk + Stripe = невозможно найти элемент - PullRequest
0 голосов
/ 14 мая 2019

Я открываю форму оплаты в окне, и каждый раз, когда Сумерки пытаются найти элементы ввода на экране. Я попытался добавить 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]"}

1 Ответ

0 голосов
/ 17 мая 2019

Я бы порекомендовал всем, кто находится в подобной ситуации, обновить Laravel до 5.7 и Dusk до 5.0.

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

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

...