Я посмотрел другие ответы на этот вопрос, но ни один из них не подходит. Моя очень странная версия проблемы.
Тестовый код находится в цикле, который выполняет те же операции на четырех вкладках (не вкладках браузера). Процесс такой:
Нажмите на одну из четырех вкладок.
Нажмите на кнопку, чтобы заполнить сетку.
Выполните 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 работают нормально.
Наблюдая за экраном, элемент «Изменить категорию» определенно виден.
Вот странная часть. Независимо от того, как я изменяю порядок, в котором проверяются вкладки, всегда происходит сбой на второй проверенной вкладке (второй раз в цикле). Это означает, что и селекторы, и код верны. Я пытался добавить класс в селектор, но результат тот же.
Любые подсказки приветствуются.