Nightwatch.js не выполняет щелчок на вкладке
Я использую Nightwatch.js для тестирования веб-сайта. Я хочу, чтобы Nightwatch.js щелкнул вкладку на веб-сайте, но щелчок не работает. По крайней мере, это не имеет эффекта...
HTML-код элемента, на который нужно нажать, выглядит следующим образом.
<div>
<ul id="tabs">
<li id="tiresTab">
<a href="#tires">Word</a>
</li>
</ul>
</div>
В Nightwatch.js я написал:
.waitForElementVisible('li[id="tiresTab"]', 10000)
.click('li[id="tiresTab"]')
Но ничего не происходит. Вкладка не открывается. И следующая команда в Nightwatch терпит неудачу. Это означает, что щелчок выполняется Nightwatch, но вкладка не открывается. Однако я могу открыть вкладку, когда я нажимаю на нее вручную. В чем может быть проблема здесь?
3 ответа
Вы можете сделать одну вещь, попробуйте следующий код и запустите.
.waitForElementVisible('#tabs li#tiresTab a', 1000);
.click('#tabs li#tiresTab a', function (clickStatus) {
console.log(clickStatus.status);
});
и если приведенный выше код не работает, сделайте еще одну вещь в рамках функции обратного вызова click click, снова выполните click
.waitForElementVisible('#tabs li#tiresTab a', 1000);
.click('#tabs li#tiresTab a', function (clickStatus) {
browser.click('#tabs li#tiresTab a');
console.log(clickStatus.status);
});
это будет работать, счастливого тестирования!!!:)
Возможно, вы пытаетесь щелкнуть элемент, который не виден пользователю. Например, вы нажимаете опцию выпадающего меню, а затем -
- Подождите, пока выпадающий список будет виден
- нажмите на выпадающее меню, теперь сделайте следующее в обратном вызове:
- дождитесь появления опции выпадающего меню (не указывайте полный путь к css!)
- Теперь нажмите опцию выпадающего
Пример кода здесь -
.waitForElementVisible('.someClass > .btn-group:nth-child(3)',6000)
.click('.someClass > .btn-group:nth-child(3)',function(){
this.waitForElementVisible('#idOfOption',10000);
this.click('#idOfOption')
})
<div>
<ul id="tabs">
<li id="tiresTab">
<a href="#tires" name="tires">Word</a>
</li>
</ul>
</div>
IN Nightwatch.js Вы пишете:
.waitForElementVisible('li[id="tiresTab"]', 10000)
.click('a[name="tires"]')
Я думаю, что это будет работать.