【发布时间】:2016-07-19 14:31:08
【问题描述】:
我是 Protractor 和一般 Web 开发的新手,我来自 Java 背景。我正在测试 Web 应用程序,但在尝试从元素中获取文本时遇到问题。
所以代码是这样组织的
<parent>
<parent2>
<child>
<target-element>
code 我附上了一张带有代码的图片。我的问题是有几个具有相同类名和标签名的子元素。我正在尝试按索引提取它们,然后尝试从目标元素中读取文本,但它返回一个空字符串。因此,从图像中,我试图从名称标签“文本”中检索文本“TU”,但我似乎无法做到这一点。这是我尝试过的事情之一。
var first = element.all(by.css('.nvd3.nv-wrap.nv-axis g')).get(2);
expect(first.getText()).toBe('TU');
我尝试检查项目是否正在显示,但它只会检查找到的第一个项目
expect(ecmSummaryTile.implementedPlot.element(by.css('.tick')).
isDisplayed()).toBe(true);
基于 Protractor 文档中的这些示例,它们仅显示具有一个父元素的示例,但在这种情况下,我正在使用的代码有点复杂。任何人都可以阐明如何做到这一点吗?
代码更新 这是代码的结构。不幸的是,我无法提供完整的代码,因为它对于我的公司来说非常庞大,所以我无法粘贴整个源代码。但我正在使用的项目的完整结构如下
<div class = "ecm-summary-chart-container">
<nvd3 class = "ng-isolate-scope">
<svg class = "nvd3-svg">
<g class = "nvd3 nv-wrap nv-lineChart">
<g>
<g class="nv-legendWrap">
<g class="nv-focus">
<g class="nv-x nv-axis nvd3-svg">
<g class="nvd3 nv-wrap nv-axis">
<g>
<g class="tick">
.
.
.
我知道我可以使用嵌套元素(by.css)找到该元素并继续向下直到找到该元素,但是我有多个具有相同类名的元素,这就是我不这样做的原因
【问题讨论】:
标签: html angularjs protractor