nightwatch无法通过其id选择元素

时间:2017-01-09 06:02:36

标签: javascript selenium nightwatch.js

我的页面上有HTML dom。我使用ngithwatch编写测试用例。

<td class="GPNWDJGHV" id="gwt-debug-MenuItem/mongo-true">Mongo Extension</td>

如果我使用下面的代码来选择dom的id,它将找不到该元素:

.waitForElementVisible('#gwt-debug-MenuItem/mongo-true', 10000)

但如果我使用classname,它将如下所示。

.waitForElementVisible('GPNWDJGHV', 10000)
唯一不同的是,id包含一个字符&#39; /&#39;。这是问题守夜人没有把它拿起来的问题吗?使用特殊字符的id名称的方法是什么?

EDIT1

我试图添加&#39; \&#39;在id如下:

.waitForElementVisible('#gwt-debug-MenuItem\/mongo-true', 10000)

它仍然无法运作。但是这个选择器在css中工作。不确定在守夜人中有多么不同。

1 个答案:

答案 0 :(得分:3)

这不是Selenium或Nightwatch的问题,而只是HTML ID。 /不是ID的有效字符。

XPath 使用/从父节点中选择子节点: http://www.w3schools.com/XML/xml_xpath.asp

w3schools有一个非常简单的例子来测试:http://www.w3schools.com/cssref/tryit.asp?filename=trycss_sel_id

编辑:您可以使用\/转义CSS选择器中的斜杠。 (注意:我只在w3schools演示中测试过它(使用id="first/name")。)

HTML:

<td class="GPNWDJGHV" id="gwt-debug-MenuItem/mongo-true">Mongo Extension</td>

JS:

.waitForElementVisible('#gwt-debug-MenuItem\/mongo-true', 10000);