Селен не находит элемент после клика - PullRequest
0 голосов
/ 04 января 2019

Я использую Selenium с Robot Framework. Мое веб-приложение написано на React. У меня проблема, потому что мой тест Selenium не находит элемент после нажатия на ссылку.

Я пытался добавить сон, чтобы проверить, слишком ли быстро Selenium и не обнаруживает изменения после этого, но, похоже, это не так. Кроме того, я попытался добавить очень большой сон и пытался найти элемент в консоли браузера и в консоли можно найти этот элемент.

Кодовые испытания:

Click Link                   //li/a[contains(., /span[@class='nav-text']/span[.='Element'])]
Page Should Contain Element  //li[@class='ant-menu-item ant-menu-item-selected']/a/span/span[.='Element']

HTML:

<div class="ant-layout-sider-children">
  <div class="logo"></div>
  <ul class="ant-menu ant-menu-dark ant-menu-root ant-menu-inline" role="menu">
    <li class="ant-menu-item" role="menuitem" style="padding-left: 24px;">
      <a href="/elements">
        <span class="nav-text"><span>Elements</span></span>
      </a>
    </li>
    <li class="ant-menu-item ant-menu-item-selected" role="menuitem" style="padding-left: 24px;">
      <a class="active" aria-current="page" href="/parameters">
        <span class="nav-text"><span>Parameters</span></span>
      </a>
    </li>
  </ul>
</div>

Ошибка:

Page should have contained element '//li[@class='ant-menu-item ant-menu-item-selected']/a/span/span[.='Elements']' but did not

При нажатии на элемент ant-menu-item-selected изменяется на выбранный <li>.

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 04 января 2019

Чтобы найти элемент после нажатия, вы можете использовать следующее решение:

Click Link                   //ul[@class='ant-menu ant-menu-dark ant-menu-root ant-menu-inline']//li[contains(@class, 'ant-menu-item')]/a/span[@class='nav-text']/span[contains(., 'Elements')]
Page Should Contain Element  //ul[@class='ant-menu ant-menu-dark ant-menu-root ant-menu-inline']//li[contains(@class, 'ant-menu-item-selected')]/a/span[@class='nav-text']/span[contains(., 'Elements')]
...