有没有办法在 Symfony/Panther 的图像上测试 link
Is there a way to test a link on a image with Symfony/Panther
谢谢你帮我解决这个问题:)
我正在使用 Symfony/Panther 在 symfony 应用程序上开发一系列测试。我正在寻找一种方法来测试我的徽标是否重定向到正确的页面。我的看法是,我必须测试 link 然后单击它来测试重定向。
Panther 文档非常具体地介绍了 link 测试,请参阅此处:
我还看到了如何通过 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:
- 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());
}
}
希望对以后的人有所帮助 ;)
谢谢你帮我解决这个问题:)
我正在使用 Symfony/Panther 在 symfony 应用程序上开发一系列测试。我正在寻找一种方法来测试我的徽标是否重定向到正确的页面。我的看法是,我必须测试 link 然后单击它来测试重定向。 Panther 文档非常具体地介绍了 link 测试,请参阅此处:
我还看到了如何通过 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:
- 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());
}
}
希望对以后的人有所帮助 ;)