说明: scrollIntoview dusk 方法未按预期工作。
任何人都可以给我指出正确版本的 laravel/dusk、chrome 驱动程序版本,以使其再次工作。
目前我在运行脚本时使用这些版本。 Laravel 框架版本:6.2 拉拉维尔/黄昏:6.11 php:7.2 Chrome 驱动程序:88.0.4324.96.
提前谢谢您。
scrollIntoView()
中存在各种各样的意外行为,以及相关原因...
其中:我自己的经验是关于将 Bootstrap 导航栏放置在滚动元素上方,导致许多“其他元素将收到点击”错误。我用自己的浏览器宏修复了它,滚动页面底部(而不是顶部)的元素:
\Laravel\Dusk\Browser::macro('scrollView', function ($selector) {
$selector = addslashes($this->resolver->format($selector));
$this->driver->executeScript("document.querySelector(\"$selector\").scrollIntoView({block: 'end'});");
$this->pause(500);
return $this;
});
终于通过在
--disable-smooth-scrolling
中添加DuskTestCase.php
选项来永久解决这个长期存在的、烦人的问题:
$options = (new ChromeOptions)->addArguments(collect([
"--window-size=1920,1080",
"--ignore-certificate-errors",
"--disable-smooth-scrolling" // add this
])->unless($this->hasHeadlessDisabled(), function ($items) {
return $items->merge([
"--disable-gpu",
"--headless",
]);
})->all());