NoSuchElementError: нет такого элемента: невозможно найти элемент с помощью WebdriverJS - PullRequest
0 голосов
/ 29 августа 2018

У меня проблемы с поиском элементов на моей странице. Моя страница может содержать от 0 до 20 из этих элементов. Я хочу найти элемент и проверить текст элемента.

Вот мой элемент:

<span _ngcontent-c47="" class="vehicle-title h5 m-0">
<a _ngcontent-c47="" href="https://abc-xyz.com/pqr/classic/4183C62C-A7AE-45BA-BAB8-0DD7082A8A30">2018 Acura MDX </a>
</span>

<span _ngcontent-c47="" class="vehicle-title h5 m-0">
<a _ngcontent-c47="" href="https://abc-xyz.com/pqr/classic/4183C62C-A7AE-45BA-BAB8-0DD7082A8A28">2016 ACURA MDX </a>
</span>

Я перепробовал множество решений, предлагаемых онлайн, включая приведенные ниже, но всегда не мог найти исключение элемента.

await driver.findElements(webdriver.By.className('vehicle-title h5 m-0')).then(async function(elements_arr) {
//some code
}

await driver.findElements(webdriver.By.xpath('//span[contains(@class, "vehicle-title h5 m-0")]')).then(async function(elements_arr) {
//some code
}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Если у вас есть случай, когда элементу требуется некоторое время для загрузки, просто используйте что-то вроде:

await driver.wait(until.elementLocated(by.xpath("//*[@class='vehicle-title h5 m-0']")), 10000).thenDoSomethingWithTheElement();

На самом деле используется асинхронный синтаксис \ await, чтобы сделать представление более красивым и четким, и в посылках нет необходимости

0 голосов
/ 29 августа 2018

В соответствии с HTML, которым вы поделились, вы можете использовать следующее решение для поиска элементов:

  • 2018 Acura MDX:

    await driver.findElements(webdriver.By.xpath("//span[@class='vehicle-title h5 m-0']/a[contains(., '2018 Acura MDX')]")).then(async function(elements_arr) {
    //some code
    }
    
  • 2016 ACURA MDX:

    await driver.findElements(webdriver.By.xpath("//span[@class='vehicle-title h5 m-0']/a[contains(., '2016 Acura MDX')]")).then(async function(elements_arr) {
    //some code
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...