2017-01-09 4 views
1

У меня ниже HTML dom на моей странице. И я использую ngithwatch для написания тестовых примеров.nightwatch не смог выбрать элемент по его идентификатору

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

Если я использую ниже код, чтобы выбрать идентификатор DOM, он не будет найти элемент:

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

, но если я использую имя класса он будет работает, как показано ниже.

.waitForElementVisible('GPNWDJGHV', 10000) 

Единственное отличие в том, что идентификатор содержит символ '/'. Разве это проблема, когда ночная прогулка не поднимает ее? Каким образом можно использовать имя идентификатора со специальным символом?

EDIT1

Я пытался добавить '\' в ИО, как показано ниже:

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

он все еще не работает. Но этот селектор работает в css. Не знаете, насколько они отличаются в ночном свете.

ответ

3

Это не проблема с Selenium или Nightwatch, но только с HTML-идентификаторами. / недействительный символ для ID.

XPath использует / для выбора дочерних узлов из родительского узла: http://www.w3schools.com/XML/xml_xpath.asp

w3schools имеет очень простой пример, чтобы проверить, что: http://www.w3schools.com/cssref/tryit.asp?filename=trycss_sel_id

Edit: Вероятно, вы можете слеш в селектор 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); 
+0

Я не нахожу никакой проблемы с удостоверением, содержащий/(косая черта) , Я тестировал его с привязкой Java. –

+0

Я снова тестировал демонстрацию w3schools: Очевидно, вы можете использовать спрятанную косую черту. Просто обновил ответ. Как ваш пример привязки Java обрабатывает косую черту? –

+0

Я просто пытался использовать \ на id. Он работает для css-селектора, но не работает с nightwath –