【问题标题】:Unable to locate a web element using protractor in jasmine framework无法在 jasmine 框架中使用量角器定位 Web 元素
【发布时间】:2016-03-14 12:53:22
【问题描述】:

我尝试使用以下内容在页面上定位一个元素,但无法做到。

element(by.css('.organizer-text.ng-binding')).click();
element(by.className('organizer-text')).click();
element(by.linkText('All Cases(1)')).click();
element(by.css('span[class="organizer-text"]')).click();
element(by.css('span[ng-class="{'folder-selected' : isSelected(node)}"]')).click();
element(by.css('span[title="All Cases (1)"')).click();
element(by.xpath('div//span[title()="All Cases(1)"]')).click();

使用 DOM 附加元素的屏幕截图。你能帮我找到它吗?

<span class="organizer-text ng-binding" 
    tooltip="buildLabel(node.name, node.totalCases)" 
    ng-click="onLabelClick($event, node)" 
    ng-class="{'folder-selected' : isSelected(node)}" 
    ng-show="!node.showEditName" title="All Cases (1)">
 All Cases (1) 
</span>

这里的结构是div-&gt;span-&gt;multiplespans(这里的spans之一就是元素)

【问题讨论】:

  • 改进代码视图并添加内嵌图片

标签: angularjs selenium jasmine protractor


【解决方案1】:

试试

element(by.xpath('//span[@title="All Cases(1)"]')).click();

【讨论】:

  • 我猜它只是不是目标元素...也许有可点击的祖先元素?
  • 错误:超时 - 在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内未调用异步回调。[0m 我包括了 allScriptsTimeout:30000
  • 在 30001 毫秒后等待 Protractor 与页面同步超时。请参阅github.com/angular/protractor/blob/master/docs/faq.md。以下任务待处理:
【解决方案2】:

我使用了 browser.ignoreSynchronization = true;登录页面后,它工作了。

【讨论】:

    【解决方案3】:

    看起来您自己找到了答案。但是,这是为了您自己的信息。试试这个工作流程吧。

    1. 右键单击您的元素并打开检查元素窗口。
    2. 检查元素的元素并右键单击
    3. 会有一个窗口,里面有一些选项
    4. 选择复制唯一选择器选项。
    5. element(by.css('paste your Unique Selector here')).click();
    6. 像第 5 步一样粘贴您的唯一选择器

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 2020-07-05
      • 2016-05-02
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 2015-09-12
      相关资源
      最近更新 更多