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);
});

это будет работать, счастливого тестирования!!!:)

Возможно, вы пытаетесь щелкнуть элемент, который не виден пользователю. Например, вы нажимаете опцию выпадающего меню, а затем -

  1. Подождите, пока выпадающий список будет виден
  2. нажмите на выпадающее меню, теперь сделайте следующее в обратном вызове:
    1. дождитесь появления опции выпадающего меню (не указывайте полный путь к css!)
    2. Теперь нажмите опцию выпадающего

Пример кода здесь -

    .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"]')

Я думаю, что это будет работать.

Другие вопросы по тегам