thx帮我解决了这个问题:)
我正在使用Symfony / Panther在symfony应用上开发一系列测试。我正在寻找一种方法来测试我的徽标是否重定向到正确的页面。我看到它的方式是必须测试链接,然后单击它以测试重定向。 豹文档是关于链接测试的安静文档,请参见此处:
我还看到了如何通过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 1号 / 1(100%)/ test1 // test2 // test3 // test4 /
时间:11.17秒,内存:38.00MB
有1个错误:
1)App \ Tests \ assertLogoIsvisible :: test类的对象 无法将Symfony \ Component \ Panther \ DomCrawler \ Image转换为 字符串
答案 0 :(得分:-1)
在我的帖子上进行编辑...我找到了解决方法。
图像不是链接,链接是<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());
}
}
希望它对未来的人有所帮助;)