Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Codeception не видна кнопка на странице


(Incredible Eldrich) #1

Есть кнопка реализованная следующим образом:

   <li class="answer do_answer " data-tester_id="5188" data-item_type="hook" data-slot_id="31" data-cube_id="30">
    <input class="btn btn-primary answer_btn" type="submit" value="Answer" data-tester_id="5188" data-slot_id="31" data-item_type="hook" data-cube_id="30"/>
    <span class="label label-danger error-message" style="font-size:14px;">Please choose an answer.</span>
    </li>

Пробовал такие локаторы:

$I->see('//input[@value="Answer"]');
$I->see('//*[@type="submit"]');
$I->see('Answer');
$I->see("//input[contains(@class,'btn btn-primary answer_btn')]");
$I->see('//div[@id="hook"]/div[2]/ul/li[6]/input');
$I->see('//li[6]/input');

И множество других вариантов. Ничего не срабатывает.
Тот же локатор в джаве прекрасно работает:

driver.findElement(By.xpath("//input[@value='Answer']")).click();

Кнопка на странице такая одна, она видна, ничем не скрыта. Что я делаю не так?


(Ray Romanov) #2

А так пробовал:

$I->seeElement(['value' => 'Answer']);

соответственно:

$I->click(['value' => 'Answer']);

?


(Максим Малунов) #3
$I->see('//input[@value="Answer"]');

а случаем там не какие-нибудь глюки с кавычками " или ’
типа так ‘//input[@value=‘Answer’]’


(Incredible Eldrich) #4

не, похожие команды в тех же кавычках отрабатывают.


(Incredible Eldrich) #5

Попробовал:
Couldn’t see element {“value”:“Answer”}:
ErrorException: Array to string conversion


(Ray Romanov) #6

Погоди у тебя тип кнопки type=“submit”, так пробуй
$I->click('Submit');
Еще немного смутило <input class="btn btn-primary answer_btn" type="submit" value="Answer" data-tester_id="5188" data-slot_id="31" data-item_type="hook" data-cube_id="30"/>
Просто не уверен в том что то что рулит в XML будет также в HTML , убери /


(Incredible Eldrich) #7

Couldn’t click “Submit”:
Link or Button or CSS or XPath ‘Submit’ was not found on page.

А решилось вот так:
$I->see(’’,’//input[@value=“Answer”]’);

Методу see нужно передавать два аргумента ожидаемое значение и локтаор, в омем случае ожидаемое значение отсутсвует но передать его все равно нужно.
Всем спасибо за помощь.