Пишу скрипт, который должен автоматически заполнять налоговую декларацию по доходам за пределами РФ.
Большая часть скрипт уже написана.
Когда нажимается “добавить источник” не получается найти элемент который раскрывает список, как найти формы в каждом новым источнике, чтобы заполнить их?
import json from bs4 import BeautifulSoup import requests as req from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import os, time, keyboard def check(driver): url = driver.current_url time.sleep(2) try: response = req.get(url=url) print(f" {url} {response.status_code}") return 0 except Exception as ex: check(driver) path_to_extension=r"C:\Users\egor\chromedriver\92.0.4515.43\win32\public_services_1.2.8.0.crx" options = Options() options.add_experimental_option("excludeSwitches", ['enable-automation']) # убрать окно # options.add_argument('--profile-directory=Profile 2') # options.add_argument(r'--C:\Users\egor\chromedriver\92.0.4515.43\win32\public_services_1.2.8.0.crx') options.add_extension(r'C:\Users\egor\chromedriver\92.0.4515.43\win32\public_services_1.2.8.0.crx') options.add_argument("--incognito") prefs = {'safebrowsing.enabled': True, "credentials_enable_service": False, "profile.password_manager_enabled" : False, # "select_file_dialogs.allowed": False, # "download.prompt_for_download": False, # "download.directory_upgrade": True, # "profile.default_content_setting_values.automatic_downloads": 1, # "download_restrictions": 0, # "profile.default_content_settings.popups": 0, "credentials_enable_service": False, "profile.password_manager_enabled": False } options.add_experimental_option("prefs", prefs) # options.add_argument('--disable-extensions') options.add_argument('--disable-infobars') options.add_argument('--safebrowsing-disable-extension-blacklist') options.add_argument('--safebrowsing-disable-download-protection') with open("password.json", "r") as json_file: a = json.load(json_file) user = a["gos"]["user_name"] password_for_gos =a["gos"]["password"] try: driver = webdriver.Chrome(r'C:\Users\egor\chromedriver\92.0.4515.43\win32\chromedriver.exe', options=options) driver.get("https://lkfl2.nalog.ru/lkfl/login") while 1: time.sleep(1) try: if driver.find_element_by_class_name("form_link"): p= driver.find_elements_by_class_name("form_link") p[1].click()#вход на госуслуги. break except: if driver.find_element_by_class_name("popup_close"): driver.find_element_by_class_name("popup_close").click() pass print("close") time.sleep(1) login_input = driver.find_element_by_id("login") login_input.clear() login_input.send_keys(user) password = driver.find_element_by_id("password") password.clear() password.send_keys(password_for_gos) driver.find_element_by_class_name("ufoPC-checkbox").click()# не запоминать пароль. check(driver) driver.find_element_by_class_name("ui-button").click()# вход в налоговой кабинет. check(driver) driver.find_element_by_class_name("menu__main").find_element_by_class_name("menu_link__report").click() check(driver)# жизненные ситуации driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/div[3]/div/div[3]/div[1]/div/div/div[3]/div/div[2]/a").click() # 3 ндфл check(driver) driver.find_element_by_class_name("Button_button__blue__Ipe-v").click()# далее check(driver) driver.find_element_by_id("react-tabs-2").click()# за пределами РФ check(driver) p= driver.find_element_by_class_name("form_buttons")#добавить источник p.find_element_by_class_name("src-modules-Taps-components-NDFL3-private-forms-IncomesForm-IncomesOutsideRFComponent-IncomeSources-IncomeSources-module__addButton").click() check(driver)