Firebug 确定 xpath 在量角器中不起作用

Firebug identified xpath not working in protractor

Firebug identified xpath not working in protractor.I ahve cretaed xpath using firebug.When 我使用 IDE 识别 xpath,它正在工作 fine.However 当我在量角器中使用相同的 xpath,它不是 working.My 元素没有 id 或 name.So 这里我只能使用 xpath 选项。

请找到下图以供参考。 在这里,我需要验证该特定元素是否具有 "IRCTC Attractions" 文本。

你能帮帮我吗?

HTML代码:

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

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

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

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

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

(我猜 "Unexpected identifier" 之前的插入符在哪里对齐。对吗?)

问题是您使用了单引号来分隔字符串 'disclaimer-message' 和分隔整个 XPath 表达式 '//[@id='disclaimer-message']'。因此,在解析器看来,您的 XPath 表达式是前两个单引号之间的内容:'//[@id=',然后 disclaimer-message 是其他标识符,没有任何逗号或其他运算符来显示它在那里做什么.

解决方案是在 XPath 表达式中使用双引号。 XPath 接受单引号或双引号;它不在乎,只要您将它们彼此匹配即可。因此,将有问题的行更改为

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

你应该可以开始了。

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