javascript - 无法单击下拉列表中的元素?

标签 javascript protractor

HTML 代码:

<ul class="dropdown-menu" role="menu">
  <li>
    <a href="#/profile">
      <i class="fa fa-user"></i> My Profile </a>
  </li>
  <li>
    <a href="#/source">
      <i class="fa fa-user"></i> Source </a>
  </li>
  <li>
    <a href="/user/logout">
      <i class="fa fa-user"></i> Logout </a>
  </li>
</ul>

我的代码:

element(by.cssContainingText('i.fa.fa-user', ' My Profile ')).click();

问题:我尝试使用 class 和 cssContaingText 单击元素,但无法执行此操作。请帮助我。

请帮助我

最佳答案

您可能也通过 by.cssContainingText 解决了这个问题。当前方法的问题在于您正在检查 i 元素内的文本,在您的情况下该文本为空:

<a href="#/profile"><i class="fa fa-user"></i> My Profile </a>

要检查的文本位于 a 元素内:

element(by.cssContainingText('ul.dropdown-menu > li > a', 'My Profile')).click();

或者,您可以在不检查文本的情况下解决它:

element(by.css("a[href*=profile]")).click();

不过,我同意“通过部分链接文本”选项在这种情况下是更好的选择。

关于javascript - 无法单击下拉列表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33627450/

相关文章:

javascript - Protractor :一旦找到元素就停止 while 循环

javascript - 如何确保离线 HTML/JavaScript 网站的安全?

javascript - 使用来自 json 的 optgroup 创建 html 选择

javascript - 从 bootstrap datetimepicker 获取日期和时间

javascript - jQuery $.post() JSON 对象

javascript - 使用Md-select时,如何在 Protractor 中下拉列表?

javascript - 为什么使用 Javascript if 语句替换类名不起作用?

javascript - 无法添加新的给定/何时/然后,出现错误 `SyntaxError: Invalid regular expression: missing/`

angularjs - 如果脚本失败,NPM 应继续执行更多脚本

javascript - 无法从函数 Javascript 中更新变量