Selenium python цикл прерывается случайно + проблема с тегами

Нужно на сайте в поиск слева вбивать запрос, нажимать на поиск, затем кликать по появившемуся прямоугольнику в центре, кликать слева на сведения, затем искать заводской номер.

Две проблемы: не могу найти правильный тэг для заводского номера не могу обеспечить бесперебойную работу цикла - на 6-7 раз выдает ошибки, которых на более ранних кругах не замечал.

Две попытки: Первый код по идее должен бросать ошибки (но нет) Второй должен открывать 150 вкладой браузера (да, много), но там все равно поломка на 6 круге.

Ошибки (выпадают случайно):

Unable to locate element: //li[5]
Unable to locate element: input[_ngcontent-c27]
from selenium import webdriver
from selenium.webdriver import ActionChains

driver = webdriver.Firefox(executable_path='C:\geckodriver.exe')
driver.implicitly_wait(10)
driver.get('https://pub.fsa.gov.ru/rds/declaration')

string = ['ЕАЭС N RU Д-RU.РА01.А.44744/19',
 'ЕАЭС N RU Д-RU.РА01.А.44745/19',
 'ЕАЭС N RU Д-RU.РА01.А.44747/19',
 'ЕАЭС N RU Д-TR.РА01.А.44855/19',
 'ЕАЭС N RU Д-RU.РА01.В.42774/19',
 'ЕАЭС N RU Д-RU.РА01.А.45077/19',
 'ЕАЭС N RU Д-RU.РА01.А.44983/19',
 'ЕАЭС N RU Д-RU.РА01.А.44986/19',
 'ЕАЭС N RU Д-RU.РА01.А.44990/19',
 'ЕАЭС N RU Д-RU.РА01.А.44992/19',
 'ЕАЭС N RU Д-RU.РА01.А.44998/19',
 'ЕАЭС N RU Д-RU.РА01.А.45100/19',
 'ЕАЭС N RU Д-RU.РА01.А.45098/19',
 'ЕАЭС N RU Д-RU.РА01.А.45102/19',
 'ЕАЭС N RU Д-RU.РА01.А.45105/19',
 'ЕАЭС N RU Д-RU.РА01.А.45146/19',
 'ЕАЭС N RU Д-RU.РА01.А.45267/19',
 'ЕАЭС N RU Д-RU.РА01.А.45173/19',
 'ЕАЭС N RU Д-CN.РА01.А.45193/19',
 'ЕАЭС N RU Д-RU.РА01.А.50402/19',
 'ЕАЭС N RU Д-CN.РА01.А.51546/19',
 'ЕАЭС N RU Д-CN.РА01.А.53157/19',
 'ЕАЭС N RU Д-CN.РА01.А.53150/19',
 'ЕАЭС N RU Д-RU.РА01.А.52992/19',
 'ЕАЭС N RU Д-RU.РА01.А.52932/19',
 'ЕАЭС N RU Д-RU.РА01.А.52996/19',
 'ЕАЭС N RU Д-CN.РА01.А.53607/19',
 'ЕАЭС N RU Д-RU.РА01.А.53610/19',
 'ЕАЭС N RU Д-RU.РА01.А.53613/19',
 'ЕАЭС N RU Д-RU.РА01.А.53621/19',
 'ЕАЭС N RU Д-TR.РА01.А.53809/19',
 'ЕАЭС N RU Д-RU.РА01.А.54032/19',
 'ЕАЭС N RU Д-RU.РА01.А.54027/19',
 'ЕАЭС N RU Д-IT.РА01.А.54041/19',
 'ЕАЭС N RU Д-RU.РА01.А.54039/19',
 'ЕАЭС N RU Д-CN.РА01.А.54018/19',
 'ЕАЭС N RU Д-CN.РА01.А.54026/19',
 'ЕАЭС N RU Д-RU.РА01.А.54370/19',
 'ЕАЭС N RU Д-RU.РА01.А.54238/19',
 'ЕАЭС N RU Д-RU.РА01.А.54239/19',
 'ЕАЭС N RU Д-RU.РА01.А.54587/19',
 'ЕАЭС N RU Д-RU.РА01.А.54764/19',
 'ЕАЭС N RU Д-RU.РА01.А.54746/19',
 'ЕАЭС N RU Д-RU.РА01.А.54738/19',
 'ЕАЭС N RU Д-RU.РА01.А.54753/19',
 'ЕАЭС N RU Д-RU.РА01.А.54735/19',
 'ЕАЭС N RU Д-RU.РА01.А.54724/19',
 'ЕАЭС N RU Д-RU.РА01.А.54758/19',
 'ЕАЭС N RU Д-RU.РА01.А.54761/19',
 'ЕАЭС N RU Д-RU.РА01.А.54729/19',
 'ЕАЭС N RU Д-RU.РА01.А.54839/19',
 'ЕАЭС N RU Д-CN.РА01.В.55392/19',
 'ЕАЭС N RU Д-CN.РА01.В.55403/19',
 'ЕАЭС N RU Д-CN.РА01.В.55377/19',
 'ЕАЭС N RU Д-RU.РА01.А.55584/19',
 'ЕАЭС N RU Д-CN.РА01.А.55523/19',
 'ЕАЭС N RU Д-CN.РА01.А.55524/19',
 'ЕАЭС N RU Д-TR.РА01.В.55959/19',
 'ЕАЭС N RU Д-RU.РА01.А.56061/19',
 'ЕАЭС N RU Д-RU.РА01.А.55753/19',
 'ЕАЭС N RU Д-RU.РА01.А.55765/19',
 'ЕАЭС N RU Д-RU.РА01.А.55769/19',
 'ЕАЭС N RU Д-RU.РА01.А.55772/19',
 'ЕАЭС N RU Д-RU.РА01.А.55973/19',
 'ЕАЭС N RU Д-RU.РА01.А.56263/19',
 'ЕАЭС N RU Д-RU.РА01.А.56337/19',
 'ЕАЭС N RU Д-RU.РА01.А.56313/19',
 'ЕАЭС N RU Д-RU.РА01.А.56332/19',
 'ЕАЭС N RU Д-RU.РА01.А.56314/19',
 'ЕАЭС N RU Д-CN.РА01.А.56573/19',
 'ЕАЭС N RU Д-CN.РА01.А.56565/19',
 'ЕАЭС N RU Д-CN.РА01.А.56567/19',
 'ЕАЭС N RU Д-CN.РА01.А.56579/19',
 'ЕАЭС N RU Д-RU.РА01.А.56578/19',
 'ЕАЭС N RU Д-RU.РА01.А.56521/19',
 'ЕАЭС N RU Д-RU.РА01.А.56519/19',
 'ЕАЭС N RU Д-RU.РА01.А.56524/19',
 'ЕАЭС N RU Д-AM.РА01.А.57010/19',
 'ЕАЭС N RU Д-IT.РА01.А.57073/19',
 'ЕАЭС N RU Д-AM.РА01.А.57047/19',
 'ЕАЭС N RU Д-RU.РА01.А.57360/19',
 'ЕАЭС N RU Д-BY.РА01.А.57393/19',
 'ЕАЭС N RU Д-CN.РА01.А.57217/19',
 'ЕАЭС N RU Д-RU.РА01.А.57369/19',
 'ЕАЭС N RU Д-BY.РА01.А.57346/19',
 'ЕАЭС N RU Д-RU.РА01.А.57326/19',
 'ЕАЭС N RU Д-RU.РА01.А.57365/19',
 'ЕАЭС N RU Д-CN.РА01.А.56939/19',
 'ЕАЭС N RU Д-RU.РА01.А.57297/19',
 'ЕАЭС N RU Д-IT.РА01.А.58165/19',
 'ЕАЭС N RU Д-RU.РА01.А.59342/19',
 'ЕАЭС N RU Д-RU.РА01.А.59588/19',
 'ЕАЭС N RU Д-RU.РА01.А.59764/19',
 'ЕАЭС N RU Д-RU.РА01.А.59766/19',
 'ЕАЭС N RU Д-RU.РА01.А.59768/19',
 'ЕАЭС N RU Д-RU.РА01.А.59769/19',
 'ЕАЭС N RU Д-RU.РА01.А.59774/19',
 'ЕАЭС N RU Д-RU.РА01.А.59773/19',
 'ЕАЭС N RU Д-RU.РА01.А.59770/19',
 'ЕАЭС N RU Д-RU.РА01.А.59977/19',
 'ЕАЭС N RU Д-RU.РА01.А.59973/19',
 'ЕАЭС N RU Д-RU.РА01.А.59978/19',
 'ЕАЭС N RU Д-RU.РА01.А.59980/19',
 'ЕАЭС N RU Д-RU.РА01.А.59982/19',
 'ЕАЭС N RU Д-RU.РА01.А.59984/19',
 'ЕАЭС N RU Д-RU.РА01.А.60064/19',
 'ЕАЭС N RU Д-CN.РА01.А.60147/19',
 'ЕАЭС N RU Д-CN.РА01.А.60157/19',
 'ЕАЭС N RU Д-CN.РА01.А.59954/19',
 'ЕАЭС N RU Д-RU.РА01.А.59965/19',
 'ЕАЭС N RU Д-RU.РА01.А.59967/19',
 'ЕАЭС N RU Д-RU.РА01.А.59966/19',
 'ЕАЭС N RU Д-RU.РА01.А.59969/19',
 'ЕАЭС N RU Д-RU.РА01.А.59968/19',
 'ЕАЭС N RU Д-RU.РА01.А.59970/19',
 'ЕАЭС N RU Д-RU.РА01.А.60131/19',
 'ЕАЭС N RU Д-GR.РА01.А.60583/19',
 'ЕАЭС N RU Д-GR.РА01.А.60446/19',
 'ЕАЭС N RU Д-CN.РА01.А.60490/19',
 'ЕАЭС N RU Д-CN.РА01.А.60459/19',
 'ЕАЭС N RU Д-CN.РА01.А.60468/19',
 'ЕАЭС N RU Д-CN.РА01.А.60479/19',
 'ЕАЭС N RU Д-RU.РА01.А.60375/19',
 'ЕАЭС N RU Д-RU.РА01.А.60384/19',
 'ЕАЭС N RU Д-CN.РА01.А.60344/19',
 'ЕАЭС N RU Д-CN.РА01.А.60349/19',
 'ЕАЭС N RU Д-CN.РА01.А.60381/19',
 'ЕАЭС N RU Д-RU.РА01.А.60803/19',
 'ЕАЭС N RU Д-RU.РА01.А.60615/19',
 'ЕАЭС N RU Д-RU.РА01.А.60609/19',
 'ЕАЭС N RU Д-RU.РА01.А.60604/19',
 'ЕАЭС N RU Д-RU.РА01.А.60606/19',
 'ЕАЭС N RU Д-RU.РА01.А.60607/19',
 'ЕАЭС N RU Д-RU.РА01.А.60608/19',
 'ЕАЭС N RU Д-RU.РА01.А.60610/19',
 'ЕАЭС N RU Д-RU.РА01.А.60612/19',
 'ЕАЭС N RU Д-RU.РА01.А.60613/19',
 'ЕАЭС N RU Д-RU.РА01.А.60614/19',
 'ЕАЭС N RU Д-RU.РА01.А.60605/19',
 'ЕАЭС N RU Д-RU.РА01.А.60943/19',
 'ЕАЭС N RU Д-RU.РА01.А.60939/19',
 'ЕАЭС N RU Д-RU.РА01.А.61034/19',
 'ЕАЭС N RU Д-CN.РА01.А.61022/19',
 'ЕАЭС N RU Д-CN.РА01.А.60949/19',
 'ЕАЭС N RU Д-CN.РА01.А.60936/19',
 'ЕАЭС N RU Д-CN.РА01.А.60944/19',
 'ЕАЭС N RU Д-CN.РА01.А.60940/19',
 'ЕАЭС N RU Д-RU.РА01.А.61554/19',
 'ЕАЭС N RU Д-RU.РА01.А.61564/19']

for i in string:

    # заполняет форму
    content = driver.find_element_by_css_selector('input[_ngcontent-c27]')
    content.clear()
    content.send_keys(i)

    # отправляет форму
    button = driver.find_element_by_xpath('//button[contains(text(), "Найти")]')
    ActionChains(driver).move_to_element(button).click().perform()

    # нажимает на окно в центре
    element = driver.find_element_by_xpath('//tr[2]')
    ActionChains(driver).move_to_element(element).click().perform()

    # открывает вкладку сведений
    element2 = driver.find_element_by_xpath('//li[5]')
    try:
        if driver.find_element_by_xpath('//li[5]').is_enabled() and driver.find_element_by_xpath('//li[5]').is_displayed():
            continue
    except:  
        ActionChains(driver).move_to_element(element2).click().perform()

    # достаёт нужныю информацию по тегу
    final = driver.find_element_by_xpath('//div[1]').text
    start = "Наименование (обозначение) продукции\n"
    end = ""
    pattern = final[final.find(start)+len(start):final.rfind(end)]
    print(i + ' ' + pattern)

    # возвращает на страницу с поиском
    driver.execute_script("window.history.go(-2)")
from selenium import webdriver

from selenium.webdriver import ActionChains

for i in string:

driver = webdriver.Firefox(executable_path='C:\geckodriver.exe')
driver.implicitly_wait(10)
driver.get('https://pub.fsa.gov.ru/rds/declaration')

# заполняет форму
content = driver.find_element_by_css_selector('input[_ngcontent-c27]')
content.clear()
content.send_keys(i)

# отправляет форму
button = driver.find_element_by_xpath('//button[contains(text(), "Найти")]')
ActionChains(driver).move_to_element(button).click().perform()

# нажимает на окно в центре
element = driver.find_element_by_xpath('//tr[2]')
ActionChains(driver).move_to_element(element).click().perform()

# открывает вкладку сведений
element2 = driver.find_element_by_xpath('//li[5]')

# достаёт нужныю информацию по тегу
final = driver.find_element_by_xpath('//div[1]').text
start = "Наименование (обозначение) продукции\n"
end = ""
pattern = final[final.find(start)+len(start):final.rfind(end)]
print(i + ' ' + pattern)

Ответы (0 шт):