Всем привет!
Что я хочу сделать: тест который проверяет нужный урл картинок для всех товаров на сайте. (196 категорий)
Возможности: PhpBrowser
Проблема: На первой странице категории товаров могут быть от 1 товара до 20 (если больше, то пагинация), первые 10 фоток у товаров подгружаются сразу, остальные подтягиваются по скроллу js’ом. Но есть атрибут благодаря которому, я теоретически могу посмотреть какая фотка будет подтягиваться по js’у.
Как я хочу сделать: Проверка фоток по атрибуту src
, если в src
стоит нужная мне фотка, то ок. Если в src
стоит “заглушка” , я смотрю в атрибут data-loadimg
где и расположена фотка которая подгружается после прокрутки страницы вниз.
Вот как я пытался сделать
class AwesomeCest
{
public function tryAll(FunctionalTester $I)
{
$categoriesModel = new Categories();
$allCategories = $categoriesModel->getAllCategoryLinks();
$I->amOnPage('/');
$categoriesLinks = $I->grabMultiple($allCategories, 'href');
foreach ($categoriesLinks as $categoryLink) {
$I->amOnPage($categoryLink);
$products = $I->grabMultiple('#tpReviewsWrapMain li div.product-card-main', 'data-loadimg'); //Так не работает, надо указывать атрибут :(
if (count($products) > 0) {
foreach ($products as $product) {
if ($I->seeElement($product.'src="/noimage_small.png"')) {
if ($I->seeElement($product.'data-loadimg="/noimage_small.png"') || $I->dontSeeElement($product . 'data-loadimg')) {
echo $I->grabMultiple('#tpReviewsWrapMain li div.product-card-main', 'data-article');
//failed echo data-article
}
}
}
} else {
//failed echo $categoryLink
}
}
}
}
Код блока продукта у которого подгружается фотка:
<a href="/somehref/" class="product-card-main-image" data-article="*****">
<img class="is-centered" src="hereTruePhoto.jpg" title="some Title" > </a>
Код блока продукта у которого Не подгружается фотка:
<a href="/somehref/" class="product-card-main-image" data-article="****">
<img class="is-centered" style="opacity: 0" src="/noimage_small.png" data-loadimg="photoAfterLoadJS.jpg" title="some Title"></a>
ошибка в консоли:
AwesomeCest: Try all
Signature: AwesomeCest:tryAll
Test: tests/acceptance/00-pages/00-AwesomeCest.php:tryAll
Scenario --
I am on page "/"
I grab multiple ".cssSelector","href"
I am on page "/somePage/"
I grab multiple "li div.cssSelector"
I see element "\n \n \n \n \nsrc="/noimage_small.png""
ERROR
Подскажите, пожалуйста, как правильно мне это всё оформить