Ошибка при использовании selenium,стопорится на определенном моменте
Использую selenium для того чтобы вытащить координаты по адресам (знаю что эта библиотека не для этого, но лучше варианта не нашел, чтобы спарсить с карт).
Вот мой код:
delay = 180
##### Create a new instance of the Chrome driver
driver = webdriver.Chrome()
url_adress = 'https://yandex.ru/maps/?ysclid=lu8apbym1e483906694'
driver.get(url_adress)
def pars(adress_data):
# Поиск формы ввода на сайте
elem_search_string = WebDriverWait(driver, delay) \
.until(EC.presence_of_element_located(
(By.XPATH, "//input[@class='input__control _bold']")))
# Вписываем данные в форму
elem_search_string.send_keys(adress_data)
# Запускаем поиск
elem_search_string.send_keys(Keys.ENTER)
# Поиск координат на сайте
elem_search_2 = WebDriverWait(driver, delay).until(EC.presence_of_element_located(
(By.XPATH, "//div[@class='search-snippet-view__body _type_toponym']")))
elem_search_2.click()
elem_search_2 = WebDriverWait(driver, delay) \
.until(EC.presence_of_element_located(
(By.XPATH, "//div[@class='toponym-card-title-view__coords-badge']")))
#И напоследок очищаю форму записи:
driver.find_element(By.XPATH,
"//input[@class='input__control _bold']").send_keys(Keys.CONTROL, 'a')
driver.find_element(By.XPATH,
"//input[@class='input__control _bold']").send_keys(Keys.BACKSPACE)
# Запись в переменную координат адреса
print(adress_data, elem_search_2.text)
return elem_search_2.text
#
result = {}
d = []
for adr in adress[:]:
adr_coord = pars(adr)
result[adr] = adr_coord
d.append(
{
'adr': adr,
'adr_coord': pars(adr)
}
)
print(adr_coord)
dt = pd.DataFrame(d)
dt
Список адресов выглядит так
['Московская область, г. Железнодорожный, ул. Главная, 11',
'Московская область, г. Железнодорожный, ул. Граничная, 24',
'Московская область, г. Железнодорожный, микрорайон Павлино, 15',
'Московская область, г. Железнодорожный, ул. Южная, 3',
'Московская область, г. Железнодорожный, ул. Керамическая, 18',
'Московская область, г. Железнодорожный, ул. Адмирала Нахимова, 13',
'Московская область, г. Железнодорожный, ул. Керамическая, 1',
'Московская область, г. Железнодорожный, ул. Дачная, 28',
'Московская область, г. Железнодорожный, ул. Лесопарковая, 6',
'Московская область, г. Железнодорожный, ул. Автозаводская, 48а',
'Московская область, г. Железнодорожный, ул. 1 Мая, стр. 6б',
'Московская область, г. Железнодорожный, ул. Колхозная, 7',
'Московская область, г. Железнодорожный, ул. Пролетарская, 5а',
'Московская область, г. Железнодорожный, ул. Пролетарская, 7',
'Московская область, г. Железнодорожный, ул. Советская, 9',
'Московская область, г. Железнодорожный, ул. Юбилейная, 2',
'Московская область, г. Климовск, пр-д Бережковский, 10',
'Московская область, г. Климовск, ул. Молодежная, 15']
Проблема в том, что код вытягивает координаты для первых 5-7, потом стопорится и выдает ошибку:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=123.0.6312.86)
Stacktrace:
GetHandleVerifier [0x00007FF73D3670C2+63090]
(No symbol) [0x00007FF73D2D2D12]
(No symbol) [0x00007FF73D16EC65]
(No symbol) [0x00007FF73D14CA7C]
(No symbol) [0x00007FF73D1DD687]
(No symbol) [0x00007FF73D1F2AC1]
(No symbol) [0x00007FF73D1D6D83]
(No symbol) [0x00007FF73D1A83A8]
(No symbol) [0x00007FF73D1A9441]
GetHandleVerifier [0x00007FF73D76262D+4238301]
GetHandleVerifier [0x00007FF73D79F78D+4488509]
GetHandleVerifier [0x00007FF73D797A6F+4456479]
GetHandleVerifier [0x00007FF73D440606+953270]
(No symbol) [0x00007FF73D2DE5DF]
(No symbol) [0x00007FF73D2D92B4]
(No symbol) [0x00007FF73D2D93EB]
(No symbol) [0x00007FF73D2C9C24]
BaseThreadInitThunk [0x00007FFEDAD77344+20]
RtlUserThreadStart [0x00007FFEDCBA26B1+33]
Вроде бы дело не в адресах, так как если по одному прогонять, то работает. Хотя я пробовал запустить с 7го адреса и он потянул только координаты к одному адресу и опять упал в такую ошибку.
Подскажите кто знает, пожалуйста.