Firebug发现xpath不适用于量角器

时间:2015-08-07 19:07:10

标签: node.js xpath automation protractor

Firebug确定xpath不能在量角器中工作。我使用firebug创建了xpath。当我使用IDE识别xpath时,它工作正常。但是当我在量角器中使用相同的xpath时,它不起作用。我的元素没有有id或name.So在这里我只能使用xpath选项。

请参阅下面的图片以供参考。 在这里,我需要验证该特定元素是否具有" IRCTC景点"文本。

你能帮我吗?

HTML code:

//div style="width:100%;" class="g_hedtext">IRCTC Attractions /div

2 个答案:

答案 0 :(得分:1)

按文字查找元素并断言它的存在:

var elm = element(by.xpath("//div[. = 'IRCTC Attractions']"));
expect(browser.isElementPresent(elm)).toBe(true);

答案 1 :(得分:1)

好的,查看您的错误消息(在评论中):

Exception loading: SyntaxError:
C:\Users\XXXX\AppData\Roaming\npm\TC_model2.js:7
var disclaimermessage = element(by.xpath('//[@id='disclaimer-message']'));
                                                  ^^^^^^^^^^ Unexpected identifier

(我猜测之前的插入符号和#34;意外的标识符"是否已对齐。是吗?)

问题是您使用单引号来分隔字符串'disclaimer-message',并分隔整个XPath表达式'//[@id='disclaimer-message']'。因此,解析器看起来你的XPath表达式是前两个单引号之间的东西:'//[@id=',然后disclaimer-message是一些其他标识符,没有任何逗号或其他运算符来显示它&#39在那里做。

解决方案是在XPath表达式中使用双引号。 XPath接受单引号或双引号;它不在乎,只要你们彼此匹配。因此,将违规行更改为

var disclaimermessage = element(by.xpath('//[@id="disclaimer-message"]'));

你应该好好去。

为了将来参考,如果您首先告诉我们有关错误消息的问题,那么这个问题会更快更容易回答。