Есть ли реальный выигрыш в производительности при указании типа локатора? [‘css’ => …] [‘xpath’ => …] ?
Все зависит от сложности локатора, реальный выигрыш при обращении по ID элемента т.е. [‘id’ => ‘…’]
Это “интуитивные” выводы или вы реально исследовали этот вопрос. Если второе - можете поделиться методиками и “сухими” цифрами из результатов?
Сухие цифры не дам, а элементарный пример есть, когда обращаюсь к выпадающему списку для выбора по xPath то обращение к нему может занимать до 10 сек., если у этого списка есть id то обращение ([‘id’ => ‘…’]) фактически моментально. В итоге когда на такие списки были расставлены ID то итоговое время выполнения тестов упало с 44 мин. до 35мин.
Я прошу прощения, возможно не так выразился, но суть вопроса не о том какой тип локатора быстрее, а есть ли смысл при использовании Codeception указывать тип локатора, будет ли разница между:
$i->click('#id');
и
$i->click(['css' => '#id']);
Буду весьма благодарен за пример + конфигурацию - т.к. такое время, затраченное на простой findElement я наблюдал пару лет назад, если не больше. Ну и код со счетов списывать не будем: когда, например, кто-то пытается вытянуть пару сотен элементов из ddl, что бы потом “весело” проитерировать среди них
Таким способом '#id'
я пользуюсь в $I->waitForElement
либо ограничить место просмотра в $I->see('Удалить пользователя', '#tcontent');
в остальных случаях
$I->click(['id' => 'MWmodal-btn1']);
$I->seeElement(['id' => 'select-all-items']);
$I->selectOption(['id' => 'objectsType'], 'Фотографии');
PS: CSS локаторами вообще не пользуюсь кроме случаев если их не избежать.