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

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


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

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


但是,如果我使用类名,它将按以下方式工作。

.waitForElementVisible('GPNWDJGHV', 10000)


唯一的不同是id包含字符“ /”。这是有问题的守夜人不接电话吗?以特殊字符使用ID名称的方式是什么?

编辑1

我试图在ID中添加“ \”,如下所示:

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


它仍然不起作用。但是此选择器在CSS中有效。不确定睡表有何不同。

最佳答案

这对于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);

07-25 20:47
查看更多