我一直试图将Laravel Dusk整合到我的测试计划中一周,并且无法进行任何测试以实际提供预期结果.情况如下:
开箱即用的测试不起作用
我在本文的"家园上的Laravel Dusk"中添加了这些步骤,并在"setup-headless-selenium-xvfb.sh"中找到了我的配置文件中的要点.这消除了我得到的很多例外.
我还将所有现有的环境变量添加到我的phpunit.dusk.xml文件的php节点, 就像它们已经成功运行的phpunit测试一样.phpunit.xml
但是现在当我运行测试时,我无法获得预期的输出.这就是我在做的事情.我在我的主页('/')视图文件中添加了一个输入字段:<input id="dusk-test" value="1234">
我运行这个测试,它是原始示例测试的mod,是唯一的测试:
<?php
namespace Tests\Browser;
use Tests\DuskTestCase;
use Laravel\Dusk\Browser;
class ExampleTest extends DuskTestCase
{
public function testBasicExample()
{
$this->browse(function (Browser $browser)
{
$browser->visit('/')->refresh()
->assertValue('#dusk-test', '1234')
;
});
}
}
Run Code Online (Sandbox Code Playgroud)
...通过运行php artisan dusk,这是我的输出每一次
PHPUnit 6.4.3 by Sebastian Bergmann and contributors.
E 1
/ 1 (100%)
Time: 1.07 seconds, Memory: 12.00MB
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\NoSuchElementException: no …Run Code Online (Sandbox Code Playgroud) 我有一个页面,其中包含一些禁用的输入、跨度和 div。
在后台我等待按键。这是一些记忆游戏的背景。
我的问题是,结果证明它很难测试。
我知道两个函数来模拟输入:type()和keys(). 当我使用时keys("@someElement", "34"),我得到“元素不可交互”。类似的情况发生在type()(这并不奇怪,因为 type 建议填写一些输入)。
如何在不使用活动输入元素的情况下正确模拟按键?
我正在使用 Laravel 5.5 和 Dusk 2.0。我有以下 html。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body class="my-body-class" id="my-body-div">
<div class="my-content-class" id="my-content-div">
Content goes here.
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我的黄昏测试。
public function testBasicExample()
{
$this->browse(function (Browser $browser) {
$browser->visit('/test/admin-fixed-layout');
$this->assertNotNull($browser->element('.my-content-class'));
$this->assertNotNull($browser->element('#my-content-div'));
// $this->assertNotNull($browser->element('.my-body-class'));
$this->assertNotNull($browser->element('#my-body-div'));
});
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释使用主体类选择器的断言,则测试失败。为什么?