我正在使用[浏览器测试(Laravel Dusk)][1]准备测试
[1]:https://laravel.com/docs/5.4/dusk,我需要强制单击未看到的元素,然后才能向下滚动浏览器页面。如何在黄昏测试中定义单击未看到的元素或滚动浏览器页面?
class SliderTest extends DuskTestCase
{
/**
* A Dusk test example.
*
* @return void
*/
public function testExample()
{
$this->browse(function ($browser) {
$browser
->visit('http://localhost:8000/admin/login')
->click('label[for=test_1]')
->pause(500)
;
});
}
}
6条答案
按热度按时间gcmastyq1#
根据@james的回答
你可以执行脚本,但是不能链接。2所以你可以在点击发生之前执行滚动。
fumotvh32#
现在可以使用
script
方法:$browser->script('window.scrollTo(0, 500);');
cotxawn73#
如果您知道需要滚动多远,可以尝试:
b4wnujal4#
现在受laravel/dustn6.0支持
他们使用的实现:https://github.com/laravel/dusk/blob/5eb7fa57346fd39b3b38e4c4bdd5ca177d1ac711/src/Browser.php#L282-L297
DIY实施
扩展浏览器类并添加以下方法:
然后您可以滚动到一个选择器:
qjp7pelc5#
如果需要扫描整个页面,可以使用以下代码
t0ybt7op6#
我认为最好使用Laravel指南,你应该使用''像下面:
和Laravel文档链接Laravel 9 doc