t.me/atinfo_chat Telegram группа по автоматизации тестирования

Strict locators есть ли выигрыш в производительности?

Теги: #<Tag:0x00007f9afb73d668> #<Tag:0x00007f9afb73d528> #<Tag:0x00007f9afb73d3e8>

Есть ли реальный выигрыш в производительности при указании типа локатора? [‘css’ => …] [‘xpath’ => …] ?

Все зависит от сложности локатора, реальный выигрыш при обращении по ID элемента т.е. [‘id’ => ‘…’]

Это “интуитивные” выводы или вы реально исследовали этот вопрос. Если второе - можете поделиться методиками и “сухими” цифрами из результатов?

Сухие цифры не дам, а элементарный пример есть, когда обращаюсь к выпадающему списку для выбора по xPath то обращение к нему может занимать до 10 сек., если у этого списка есть id то обращение ([‘id’ => ‘…’]) фактически моментально. В итоге когда на такие списки были расставлены ID то итоговое время выполнения тестов упало с 44 мин. до 35мин.

Я прошу прощения, возможно не так выразился, но суть вопроса не о том какой тип локатора быстрее, а есть ли смысл при использовании Codeception указывать тип локатора, будет ли разница между:

$i->click('#id');

и

$i->click(['css' => '#id']);

Буду весьма благодарен за пример + конфигурацию - т.к. такое время, затраченное на простой findElement я наблюдал пару лет назад, если не больше. Ну и код со счетов списывать не будем: когда, например, кто-то пытается вытянуть пару сотен элементов из ddl, что бы потом “весело” проитерировать среди них :slight_smile:

Таким способом '#id' я пользуюсь в $I->waitForElement либо ограничить место просмотра в $I->see('Удалить пользователя', '#tcontent'); в остальных случаях

$I->click(['id' => 'MWmodal-btn1']); 
$I->seeElement(['id' => 'select-all-items']);
$I->selectOption(['id' => 'objectsType'], 'Фотографии');

PS: CSS локаторами вообще не пользуюсь кроме случаев если их не избежать.