Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit/Selenium找不到*任何*元素_Php_Selenium_Phpunit - Fatal编程技术网

PHPUnit/Selenium找不到*任何*元素

PHPUnit/Selenium找不到*任何*元素,php,selenium,phpunit,Php,Selenium,Phpunit,我正在尝试使用PHPUnit和Selenium向我的symfony4项目添加一些简单的测试。问题是不可能找到任何HTML元素,这让我发疯 我的测试: class WebTest extends PHPUnit_Extensions_Selenium2TestCase { protected function setUp() { $this->setBrowser('firefox'); $this->setBrowserUrl('http://localhost:

我正在尝试使用PHPUnit和Selenium向我的symfony4项目添加一些简单的测试。问题是不可能找到任何HTML元素,这让我发疯

我的测试:

class WebTest extends PHPUnit_Extensions_Selenium2TestCase {

 protected function setUp() {
    $this->setBrowser('firefox');
    $this->setBrowserUrl('http://localhost:8000');
 }

 public function testPageOnline() {
    $this->url('/');
    $this->assertEquals('Home page', $this->title());
 }

 public function testHasForm() {
    $this->url('/');

    $action = $this->byCssSelector('form')->attribute('action');
    $this->assertEquals('message', $action);

    $name = $this->byName('name');
    $dob = $this->byName('dob');
    // Verify these input boxes are empty
    $this->assertEquals('', $name->value());
    $this->assertEquals('', $dob->value());
 }
}
第一个测试(“testPageOnline”)总是成功,但第二个测试总是失败,无论我尝试哪种变体。我的html代码没有什么特别之处,没有javascript或任何东西,只是一个静态页面:

<form action="message" method="POST">

        <div class="row p-2">
            <div class="col-2"><label for="name">Name:</label></div>
            <div class="col-2"><input type="text" name="name"></div>
        </div>

        <div class="row p-2">
            <div class="col-2"><label for="dob">Date of birth:</label></div>
            <div class="col-2"><input type="text" name="dob"></div>
        </div>

        <div class="row p-2">
            <div class="col-2"><label for="car">Car</label></div>
            <div class="col-2">
                <select name="car">
                    <option value="volvo">Volvo</option>
                    <option value="saab">Saab</option>
                    <option value="mercedes">Mercedes</option>
                    <option value="audi">Audi</option>
                </select>
            </div>
        </div>

        <div class="row p-2">
            <div class="col-2"><label for="message">Message:</label></div>
            <div class="col-2"><input type="text" name="message" /></div>
        </div>

        <div class="row p-2">
            <div class="offset-1 col-3">
                <button type="submit" id="post" class="btn btn-block btn-dark">Post</button>
            </div>
        </div>

    </form>

姓名:
出生日期:
汽车
沃尔沃汽车
萨博
梅赛德斯
奥迪
信息:
邮递
PHPUnit输出:

PHPUnit 7.5.14由塞巴斯蒂安·伯格曼和贡献者撰写

运行时:PHP7.3.8-1+ubuntu18.04.1+deb.sury.org+1配置: /home/xxxx/capsearch/phpunit.xml

测试默认值。E
2/2(100%)

时间:5.72秒,内存:4.00 MB

有1个错误:

1) WebTest::testHasForm InvalidArgumentException:未找到元素


有谁能帮我弄清楚出了什么问题吗?我尝试使用不同的选择器(类、ID、名称)查找不同的元素,我100%确定它位于正确的页面上,因为第一次测试通过了。

我在这篇GitHub文章中找到了解决方案:


我使用的是Selenium 3.9,显然这是错误的,我应该使用带有“-enablePassThrough false”标志的3.8.1。现在它工作了

我在这篇GitHub文章中找到了解决方案:

我使用的是Selenium 3.9,显然这是错误的,我应该使用带有“-enablePassThrough false”标志的3.8.1。现在它工作了