Я создаю бот Selenium Chrome, используя Python. Я реализую python coroutine syn c функцию. Использование метода ожидания Selenium с функцией python syn c.
Я получил ошибку, поведение которой не соответствует ожидаемому.
Я выбираю элемент в раскрывающемся меню A, подождите несколько секунд, чтобы раскрывающийся список B был заполнен на основе элемента значение в раскрывающемся списке A.
Этот процесс заключает в себе python функцию syn c с await. Это не oop в соответствии с этим поведением.
Но запустить все сразу.
asyn c def
regionLists = ['111','222','333']
regionElem = self.browser.find_element_by_id("regionId")
regionSelect = Select(regionElem)
regionTasks = [
self.parseCities(self.browser, regionSelect, regionValue)
for regionValue in regionLists
]
result = await asyncio.wait(regionTasks)
Функция ParseCities
async def parseCities(self, browser, regionSelect, regionValue):
regionSelect.select_by_value(regionValue)
# ERROR AT THIS LINE BELOW
wait(browser, 10).until(
lambda b: len(Select(b.find_element_by_id("cityId")).options) > 1
)
Ошибка
Task exception was never retrieved
future: <Task finished coro=<main.parseCities() done, defined at Selenium/main.py:139> exception=NoSuchElementException('Cannot locate option with value: 781111')>
Traceback (most recent call last):
File "Selenium/main.py", line 140, in parseCities
regionSelect.select_by_value(regionValue)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/support/select.py", line 87, in select_by_value
raise NoSuchElementException("Cannot locate option with value: %s" % value)
selenium.common.exceptions.NoSuchElementException: Message: Cannot locate option with value: 781111