Как выбрать вариант из выпадающего - PullRequest
0 голосов
/ 28 января 2020

У меня проблема с навигацией по сайту с использованием селена. Это мой код:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://webtrader.binary.com/v2.2.8/main.html#')

resources = driver.find_element_by_id('ui-id-1')
resources.click()

Однако я получаю исключение:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <ul id="ui-id-1" class="ui-menu ui-widget ui-widget-content ui-menu-icons"> could not be scrolled into view

Я не понимаю, где я ошибся. Я пытаюсь получить доступ к «Историческим данным» из выпадающего меню «Ресурсы». Может кто-нибудь, пожалуйста, помогите мне получить доступ к нему. Может быть, я неправильно понял идентификатор ресурса. Вы также можете проверить это.

Ответы [ 3 ]

1 голос
/ 28 января 2020

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

from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.select import By
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)

driver.find_element_by_class_name('resources').click()
historical_data = wait.until(ec.visibility_of_element_located((By.ID, 'ui-id-4')))
0 голосов
/ 28 января 2020

Здесь много чего происходит. Прежде всего, вашему коду не хватает ожидания. Без этого всегда не получится, так как страница загружается динамически. Читайте о Ожидания .

Во-вторых, здесь resources = driver.find_element_by_id('ui-id-1') вы находите элемент из выпадающего меню, а затем пытаетесь щелкнуть по нему. Но выпадающее меню не открывается. Вы должны нажать на нее, затем дождаться появления опции, только затем нажать на «Исторические данные».

0 голосов
/ 28 января 2020

Пожалуйста, убедитесь, что вы установили одинаковые id для разных DOM-элементов.

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