Я просмотрел другие ответы на этот вопрос, но ни один из них не подходит. У меня очень странная версия проблемы.
Тестовый код находится в цикле, который выполняет одни и те же операции на четырех вкладках (не на вкладках браузера). Процесс:
Нажмите на одну из четырех вкладок. Нажмите на кнопку, чтобы заполнить сетку. Выполните 5 операций над сеткой. (повторить для каждой вкладки)
Все пять операций работают нормально с первого раза через цикл. Во второй раз в цикле третья операция завершается ошибкой:
$I->clickWithRightButton("//div[text() = '" . oPageVariables::$namePrefix .
$name . "']");
$I->waitForElement("//span[text() = 'Change Category']");
$I->see('Change Category');
$I->wait(1);
$I->click("//span[text() = 'Change Category']");
Вот соответствующий HTML:
<span class="x-menu-item-text" id="ext-gen315">Change Category</span>
Я не могу использовать идентификатор, потому что он может измениться. Обратите внимание, что элемент, на который я хочу щелкнуть, одинаков на каждой вкладке.
Щелчок правой кнопкой мыши работает, чтобы раскрыть меню, но действие щелчка завершается с ошибкой «элемент не виден», хотя «$I->waitForElement» и I->See работают нормально.
Глядя на экран, элемент «Изменить категорию» определенно виден.
Вот странная часть. Независимо от того, как я меняю порядок, в котором тестируются вкладки, он всегда терпит неудачу на второй тестируемой вкладке (второй раз в цикле). Это означает, что и селекторы, и код верны. Я попытался добавить класс в селектор, но результат тот же.
Любые подсказки приветствуются.
Change Category
на первой вкладке. Попробуйте создать более конкретное выражение xpath, чтобы оно соответствовалоChange Category
на правильной вкладке. - person Naktibalda   schedule 19.01.2019