我在窗口中打开付款表格,每当Dusk都在努力寻找屏幕上的输入元素时。我尝试添加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');
我尝试过:
->pause(3000)
之前使用type('cardnumber')
,但什么也没做->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]"}
答案 0 :(得分:0)
我会建议所有处于类似职位的人将Laravel升级到5.7,将Dusk升级到5.0。
黄昏有一个名为withinFrame()
的新方法,该方法使测试更易于编写和阅读:
https://github.com/laravel/dusk/commit/8bfb9f01ae09d1d9ca3ce53e36b1f020c0f8dc8f