nightwatch 未能通过其 id select 元素
nightwatch failed to select element by its id
我的页面上有以下 HTML dom。我使用 ngithwatch 编写测试用例。
<td class="GPNWDJGHV" id="gwt-debug-MenuItem/mongo-true">Mongo Extension</td>
如果我使用下面的代码 select dom 的 id,它将找不到元素:
.waitForElementVisible('#gwt-debug-MenuItem/mongo-true', 10000)
但如果我使用类名,它将按如下方式工作。
.waitForElementVisible('GPNWDJGHV', 10000)
唯一不同的是id包含一个字符'/'。这是守夜人不接电话的问题吗?带特殊字符的id名怎么用?
EDIT1
我试过在 id 中添加'\',如下所示:
.waitForElementVisible('#gwt-debug-MenuItem\/mongo-true', 10000)
还是不行。但是这个 selector 在 css 中有效。不确定守夜人有何不同。
这不是 Selenium 或 Nightwatch 的问题,而是 HTML ID 的问题。 /
不是有效的 ID 字符。
XPath 从父节点使用 /
到 select 子节点:
http://www.w3schools.com/XML/xml_xpath.asp
w3schools 有一个非常简单的例子来测试:http://www.w3schools.com/cssref/tryit.asp?filename=trycss_sel_id
编辑: 也许你可以在 CSS select 或 \/
中转义斜杠。 (注意:我只在 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);
我的页面上有以下 HTML dom。我使用 ngithwatch 编写测试用例。
<td class="GPNWDJGHV" id="gwt-debug-MenuItem/mongo-true">Mongo Extension</td>
如果我使用下面的代码 select dom 的 id,它将找不到元素:
.waitForElementVisible('#gwt-debug-MenuItem/mongo-true', 10000)
但如果我使用类名,它将按如下方式工作。
.waitForElementVisible('GPNWDJGHV', 10000)
唯一不同的是id包含一个字符'/'。这是守夜人不接电话的问题吗?带特殊字符的id名怎么用?
EDIT1
我试过在 id 中添加'\',如下所示:
.waitForElementVisible('#gwt-debug-MenuItem\/mongo-true', 10000)
还是不行。但是这个 selector 在 css 中有效。不确定守夜人有何不同。
这不是 Selenium 或 Nightwatch 的问题,而是 HTML ID 的问题。 /
不是有效的 ID 字符。
XPath 从父节点使用 /
到 select 子节点:
http://www.w3schools.com/XML/xml_xpath.asp
w3schools 有一个非常简单的例子来测试:http://www.w3schools.com/cssref/tryit.asp?filename=trycss_sel_id
编辑: 也许你可以在 CSS select 或 \/
中转义斜杠。 (注意:我只在 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);