有没有办法在 Symfony/Panther 的图像上测试 link

Is there a way to test a link on a image with Symfony/Panther

谢谢你帮我解决这个问题:)

我正在使用 Symfony/Panther 在 symfony 应用程序上开发一系列测试。我正在寻找一种方法来测试我的徽标是否重定向到正确的页面。我的看法是,我必须测试 link 然后单击它来测试重定向。 Panther 文档非常具体地介绍了 link 测试,请参阅此处:

https://symfony.com/blog/introducing-symfony-panther-a-browser-testing-and-web-scraping-library-for-php

我还看到了如何通过 DomCrawler np 查找图像...

所以我尝试过,将 link 测试方法应用于图像,当然它没有用,因为图像不是方法所期望的字符串

因此,如果有人知道如何在图像上测试重定向 link,那就太棒了。提前致谢

<?php
namespace App\Tests;

 use Symfony\Component\Panther\PantherTestCase;  

 class assertLogoRedirectTo extends PantherTestCase   
{
    public function test()
    {
    
        $client = static::createPantherClient();
        $crawler = $client->request('GET','https://my.sibluconnect.com');        
    
        $client->waitFor('.login');        
        $image = $crawler->selectImage('siblu')->image(); 
        $link = $crawler->selectLink($image)->link();        
        $crawler = $client->click($link);       
   
    }
}

运行 测试显示此错误:

DevTools listening on ws://127.0.0.1:12947/devtools/browser/d3a0e57f-2b00-4eb3-97e3-64986cf0495e E 1 / 1 (100%)/test1//test2//test3//test4/

Time: 11.17 seconds, Memory: 38.00MB

There was 1 error:

  1. App\Tests\assertLogoIsvisible::test Object of class Symfony\Component\Panther\DomCrawler\Image could not be converted to string

编辑我的 post...我找到了方法。

图像不是 link,link 是 <a href><button>,因此测试不应该寻找 [=22] 的图像=].所以我尝试了另一种方法,它试图通过 link 在页面中的位置来定位它。由于此 link 是我的徽标,因此它是页面上的第一个 <a href>

这是我试过的代码,它工作得很好!!!

namespace App\Tests;

use Symfony\Component\Panther\PantherTestCase;  

class assertLogoRedirectTo extends PantherTestCase   // Success
{
public function test()
{

    echo'/test1/';
    $client = static::createPantherClient();
    $crawler = $client->request('GET', 'https://my.sibluconnect.com/fr/');       

    $link = $crawler->filter('a')->eq(0)->attr('href');
    $crawler = $client->request('GET',$link);
    $this->assertSame('http://sibluconnect.com/', $client->getCurrentURL());


 }
}

希望对以后的人有所帮助 ;)