Я получаю перехваченное исключение элемента в robot framework, в то время как я пытаюсь щелкнуть строку меню в веб-приложении

#robotframework

#robotframework

Вопрос:

мой код:

 Wait Until Page Contains Element  //span[contains(text(),'Transactions ')]    timeout=60s
sleep  3
Mouse Over  //span[contains(text(),'Transactions ')]
click Element  //span[contains(text(),'Transactions ')]
  

Вывод:

 ElementClickInterceptedException: Message: element click intercepted: 
Element <span style="font-size:15px">...</span> is not clickable at point 
    (73, 411). Other element would receive the click: <span style="font- 
    size:15px">...</span>
   (Session info: chrome=85.0.4183.121)
  

Исходный код:

 <li class="sub-menu  dcjq-parent-li">
  <a href="#" class="hvr-bounce-to-right-sidebar-parent dcjq- 
                     parent">
    <span class="glyphicon glyphicon-shopping-cart" style="font- 
                                                           size:20px"></span>
    <span style="font-size:15px">Procurement</span>
    <span style="padding:0 0 0 91px;">
      <i class="glyphicon glyphicon-menu-right">
      </i>
    </span>
    <span class="fa dcjq-icon"></span>
  </a>
<li class="sub-menu  dcjq-parent-li">
  <a href="#" class="hvr-bounce-to-right-sidebar-parent dcjq- 
                     parent">
    <span class="glyphicon glyphicon-briefcase" style="font- 
                                                       size:20px"></span>
    <span style="font-size:15px">Transactions </span>
    <span style="padding:0 0 0 85px;">
      <i class="glyphicon glyphicon-menu-right">
      </i>
    </span>
    <span class="fa dcjq-icon"></span></a>
                       
  

Здесь я пытаюсь щелкнуть по тексту тега «span», «Транзакция», но элемент нажимается на текст «Закупки».

Комментарии:

1. По моему опыту, получение этой ошибки действительно означает, что в отображаемом состоянии DOM есть элемент, перекрывающий целевой. Попробуйте настроить таргетинг на родственный или родительский <a> или <li> и посмотреть, сработает ли это.

2. Нет, это не работает, я также использовал родительский тег, но все равно он не работает, проблема связана с ключевым словом «Наведение курсора мыши», например: если я использую курсор мыши при транзакциях, курсор указывает на «Закупки», я проверил тот же случай с другимитексты ссылок также находятся в строке меню.

Ответ №1:

Я получил решение, не уверен, правильно ли оно.

Код:

    Wait Until Page Contains Element   //div/ul/li[7]/a[@href='#']   timeout=10s
   Wait Until Element Is Visible  //div/ul/li[7]/a[@href='#']    timeout=10s
   Set Focus To Element                
              //span[contains(text(),'Transactions')]/parent::a[@href='#']
   Simulate Event   //div/ul/li[7]/a/span[contains(text(),'Transactions ')]   click