Selenium Web-Driver не может найти элемент (Selenium IDE находит его) - PullRequest
1 голос
/ 21 октября 2019

У меня проблема с поиском элемента (кнопка, которую нужно нажать) с моим кодом. Я использую Selenium IDE, чтобы найти xpath или css селектор элемента. Странно, что Selenium IDE действительно находит его, но мой код не находит.

Элемент, который я хочу выбрать, представляет собой кнопку, при нажатии появляется раскрывающийся список, и мне нужно нажать на другую кнопку.

  1. Кнопка (button class = "js-select uk-button uk-button - выберите">)
  2. Кнопка (li data-field = "sapOrderNumber"> Auftragsnummer

Вот HTML-код класса, который я хочу выбрать:

<div class="uk-button-dropdown uk-margin-right" data-uk-dropdown="{mode:'click'}" aria-haspopup="true" aria-expanded="false">
        <button class="js-select uk-button uk-button--select">
            <span>Filter auswählen</span>
            <i class="icon-arrow-left"></i>
        </button>
        <div class="uk-dropdown uk-dropdown-close uk-dropdown-bottom uk-dropdown--select" aria-hidden="true">
            <ul class="js-filter-select uk-nav uk-nav--select">
                    <li data-field="articleNumber">Artikelnummer</li>
                    <li data-field="dateRange">Zeitraum</li>
                    <li data-field="sapOrderNumber">Auftragsnummer</li>
                    <li data-field="personalReference">persönliche Referenz</li>
                    <li data-field="shipTo">Lieferadresse</li>
                    <li data-field="orderType">Auftragsart</li>
            </ul>
        </div>
    </div>

Снимок экрана Selenium IDE (Selenium IDE действительно находит и нажимает на кнопку) 1

Я попытался найти элемент со следующим кодом:

driver.find_element_by_xpath("//ul[@id='tabs-orderbook']/li/div/div/div/div/div/button").click()
driver.find_element_by_xpath("//button").click()
driver.find_element_by_css_selector(.uk-margin-right > .js-select").click()

это сообщение об ошибке, которое я получаю:

NoSuchElementException: нет такого элемента: Невозможно найти элемент: {"method": "xpath", "selector": "// ul [@ id = 'tabs-orderbook'] / li / div / div / div / div / div / button"}

У меня естьискал ответ довольно долго и расстраивался. Буду очень признателен за любую помощь или советы.

Я использую Chrome (версия 77.0.3865.120), Chromewebdriver (версия 77.0.3865.40), селен (версия 3.141.0)

пс. Это мой первый вопрос о переполнении стека, так что если у вас есть какие-либо советы относительно того, как я задаю вопросы, я был бы очень благодарен.

Большое спасибо и хорошего дня. : D

1 Ответ

0 голосов
/ 21 октября 2019

Насколько я понимаю, вы хотите выбрать кнопку с именем класса "js-select uk-button uk-button - select" .. ниже указан xpath,

// button [содержит(@class, 'js-select uk-button uk-button - select')]

Для выбора выпадающего значения ниже указан xpath,

// li [содержит (текст(), 'Auftragsnummer')]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...