【问题标题】:Selenium not finding element after click点击后硒找不到元素
【发布时间】:2019-05-30 23:36:16
【问题描述】:

我正在使用 Selenium 和 Robot Framework。我的 Web 应用程序是用 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 会变为选中的&lt;li&gt;

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: selenium selenium-webdriver xpath webdriver robotframework


    【解决方案1】:

    要在点击后找到元素,您可以使用以下解决方案:

    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')]
    

    【讨论】:

    • 完美运行。太感谢了。您能解释一下为什么我的解决方案不起作用吗?
    • 我的解决方案中的方法是向下钻取 &lt;ul&gt; 并找到所需的 &lt;li&gt; 节点,其中 class 作为包含值 ant-menu- 的属性item 和文本 Elements。单击后,相同的元素会更改为包含 class 属性作为 ant-menu-item-selected。您的代码试验近乎完美。
    猜你喜欢
    • 2019-11-28
    • 2021-08-17
    • 2020-08-17
    • 1970-01-01
    相关资源
    最近更新 更多