PHPUnit + Selenium`InvalidArgumentException:找不到元素`

Posted

技术标签:

【中文标题】PHPUnit + Selenium`InvalidArgumentException:找不到元素`【英文标题】:PHPUnit + Selenium `InvalidArgumentException: Element not found` 【发布时间】:2020-03-25 15:21:44 【问题描述】:

按照here 的示例,尝试实现一些 Selenium 测试。

测试类代码:

class ***Test extends \phpUnit_Extensions_Selenium2TestCase

    protected function setUp(): void
    
        $this->setHost('localhost');
        $this->setPort(4444);
        $this->setBrowserUrl('https://***.com/');
        $this->setBrowser('chrome');

        parent::setUp();
    

    public function onNotSuccessfulTest(Throwable $e): void
    
        $filedata = $this->currentScreenshot();
        $file     = __DIR__ . '/' . time() . '.png';
        file_put_contents($file, $filedata);

        parent::onNotSuccessfulTest($e);
    

    /**
     * @test
     */
    public function visit_home_page_case_success()
    
        $this->url('/');
        dump($this->title());
        dd($this->byTag('body')->text()); //line 35
    

控制台输出:

...

"Stack Overflow - Where Developers Learn, Share, & Build Careers"

...

There was 1 error: 1) ...\***Test::visit_home_page_case_success InvalidArgumentException: Element not found.

...

.../***Test.php:35

...

截图:

出了什么问题以及如何与页面元素进行交互?

重复here。

【问题讨论】:

【参考方案1】:

回复here:

很遗憾 phpunit-selenium 还不支持 W3C 模式,你可以通过以下方式强制它使用非 w3c 模式:

$this->setDesiredCapabilities(['chromeOptions' => ['w3c' => false]]); 

【讨论】:

以上是关于PHPUnit + Selenium`InvalidArgumentException:找不到元素`的主要内容,如果未能解决你的问题,请参考以下文章

PHPUnit/Selenium 无法找到 *any* 元素

将带有梨的 PHPUnit Selenium 安装到 Windows 中

在 PHPUnit 的 Selenium 扩展中使用 glob 来识别元素

phpunit-selenium 的 keys() 不适用于 safari webdriver

phpunit selenium2重复测试不起作用

PHPUnit Selenium 移动到无效