-1

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

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

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

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

所以我尝试过的是使链接测试方法适应图像,当然它不起作用,因为图像不是该方法所期望的字符串

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

<?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 监听 ws://127.0.0.1:12947/devtools/browser/d3a0e57f-2b00-4eb3-97e3-64986cf0495e E 1 / 1 (100%)/test1//test2//test3//test4/

时间:11.17 秒,内存:38.00MB

有 1 个错误:

  1. App\Tests\assertLogoIsvisible::test 类 Symfony\Component\Panther\DomCrawler\Image 的对象无法转换为字符串
4

1 回答 1

0

在我的帖子上编辑...我找到了方法。

图像不是链接,链接是一个<a href>左右<button>,测试不应该寻找图像作为链接。所以我尝试了另一种方法,它试图通过链接在页面中的位置来定位链接。由于此链接是我的徽标,因此它是 <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());


 }
}

希望它在未来对某人有所帮助;)

于 2019-06-25T12:50:51.573 回答