не удается найти динамический элемент после переключения обратно в кадр - PullRequest
0 голосов
/ 26 июня 2018

Я использую роботизированную среду и библиотеку селена для автоматизации тестирования сайта.

Мне нужно щелкнуть меню, элементы которых находятся под некоторым кадром, тесты выглядят так, как показано ниже:

# switch to default content first
  unselect frame
# switch to level one menu's frame which id is head and click menu1a which id is menu1a
  select frame head
  click menu1a
# switch to level two menu's frame which id is menuFrame and click menu2a which id is menu2a
  unselect frame
  select frame menuFrame
  click menu2a
# do some testing
  …
# then I need to do some other testing in another menu
# switch to default content first
  unselect frame
# switch to level one menu's frame which id is head and click menu1b which id is menu1b
  select frame head
  click menu1b
  unselect frame
# switch to level two menu's frame which id is menuFrame and click menu2b which id is menu2b
  select frame menuFrame
  click menu2b
# do some other testing
  …

При выполнении нажмите кнопку menu2b, селен выдает исключение: Элемент с локатором menu2b не найден.

Если вручную щелкнуть menu1a и menu1b, меню уровня два (menu2a, menu2b) динамически изменяются внутри элемента div и под одним и тем же фреймом, который называется menuFrame, и если я нахожу различные меню уровня два в одном и том же меню уровня один, это все в порядке, как показано ниже:

unselect frame
select frame head
click menu1a
unselect frame
select frame menuFrame
click menu2a
# do some testing
  …
unselect frame
select frame head
click menu1a
unselect frame
select frame menuFrame
click menu2c
# do some other testing

Я также установил скорость селена в 1 секунду, которая будет ждать 1 с после выполнения каждой команды, все еще вызывает исключение.

Обновление:

Когда я нажимаю F12, чтобы найти элемент menu2b, html выглядит так:

<li id="22" onclick="showStation(1012);"><a class="innerA" target="mainFrame" href="test.jsp">menu2b</a></li>

но, когда я печатаю источник страницы при исполнении, html будет:

<li id="50" onclick="showStation(1012);"><a class="innerA" target="mainFrame" href="test.jsp">menu2b</a></li>

ИД элемента отличается ...

1 Ответ

0 голосов
/ 27 июня 2018

Причина этой проблемы до сих пор неизвестна, возможно, идентификатор элемента изменен с помощью javascript. Через несколько часов я нахожу способ решить проблему, а именно найти элемент по тексту, потому что текст элемента всегда не меняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...