не работает переключения "case" между скриптами питон
Мои переключения между скриптами не работают от слова совсем
from secrets import choice
from selenium import *
from time import *
from get_data import *
from pars import *
def step_init():
print('''
1. Парсинг
2. Добавление нового абонента
''')
def input_param():
string = input("Выберите тип операции : ")
match string:
case "parsing":
parsing()
case "add":
stable()
first = step_init()
second = input_param()
Сначала должен отрабатываться принт, потом инпут и в зависимости от инпута должен срабатывать case который запустит один из двух файлов с скриптами.
Но почему то сначала скрипты срабатывают по очереди, и уж в конце светится выбор инпута. Как мне исправить?
упростил логику через условия до следующего, но результат неизменный!!!! Может тут что посоветуете?
from pkgutil import get_data
from secrets import choice
from selenium import *
from time import *
from get_data import *
from pars import *
x = input('''Enter the number of operation :
1. Parsing
2. Add client
''')
if x == '1':
parsss()
elif x == '2':
parsing()
else:
print('!!! No such operation !!!')
файл get_data.py
from selenium import webdriver
from time import sleep
import pyautogui
class SBMS_start():
def open(self):
self.browser = webdriver.Chrome('C:\\\\Windows\\chromedriver.exe')
self.browser.get('website')
self.browser.maximize_window()
def auth(self):
browser = self.browser
sleep(1)
username_textbox = browser.find_element_by_name("user")
username_textbox.send_keys("login") #LOGIN
sleep(1)
password = browser.find_element_by_name("password")
password.send_keys("pass") #PASSWORD
sleep(1)
button1 = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div[5]/button')#ENTER
button1.click()
def search_btn(self):
browser= self.browser
sleep(1)
search = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[1]/div/div/div[1]/div/div[2]/ps-button[1]')
search.click()
def parse(self):
browser = self.browser
#-----------------------------------------------------------CLIENT INFORMATION--------------------------------------------------------------------------------------------------------
sleep(1)
name = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[1]')
adress = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[2]')
jur_type = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[3]')
type = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[4]')
gender = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[5]')
birth = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[6]')
document = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[7]')
serial = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[8]')
serial_number = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[9]')
given = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[10]')
given_date = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[1]/tr[11]')
balance = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[2]/div/div[1]/div[1]/div[2]/table/tbody[2]/tr[2]')
#-----------------------------------------------------------ABONENT INFORMATION--------------------------------------------------------------------------------------------------------
ms_log = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[1]/tr')
tarif = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[2]/tr[2]')
main_balance = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[2]')
number_class = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[4]')
number_type = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[5]')
kommutator = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[6]')
icc = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[7]')
imsi = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[8]')
activ_date = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[9]')
last_pay = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[12]')
last_sum = browser.find_element_by_xpath('/html/body/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/div[2]/div/div/div/div/div[2]/div/div[2]/div/div[2]/table/tbody[5]/tr[13]')
print('\n') #client info
print('-----------------Client Information--------------')
print(name.text)
print(adress.text)
print(jur_type.text)
print(type.text)
print(gender.text)
print(birth.text)
print(document.text)
print(serial.text)
print(serial_number.text)
print(given.text)
print(given_date.text)
print(balance.text)
print('\n') #abon info
print('-----------------Abonent Information--------------')
print('\n') #abon info
print(ms_log.text)
print(tarif.text)
print(main_balance.text)
print(number_class.text)
print(number_type.text)
print(kommutator.text)
print(icc.text)
print(imsi.text)
print(activ_date.text)
print(last_pay.text)
print(last_sum.text)
class ms():
def msisdn_put():
sleep(1)
pyautogui.moveTo(400,190,duration=0.5)
pyautogui.click(400,190,duration=0.5)
pyautogui.write("998118971") #input of msisdn
sleep(1)
def parsing():
start =SBMS_start()
start.open()
start.auth()
sleep(1)
mouse = ms()
ms.msisdn_put()
start.search_btn()
start.parse()
blabla = parsing()
файл pars.py
from functools import wraps
from os import write
from selenium import webdriver
from time import sleep
import pyautogui
class SBMS():
def start(self):
self.browser = webdriver.Chrome('C:\\\\Windows\\chromedriver.exe')
self.browser.maximize_window()
self.browser.get('website')
def auth(self):
browser = self.browser
sleep(1)
username = browser.find_element_by_name("user")
username.send_keys("login")
sleep(1)
password = browser.find_element_by_name("password")
password.send_keys("pass")
sleep(1)
autorisation = browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div[5]/button')
autorisation.click() #ENTER
def search(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div[1]/div/div/div[1]/div/div[2]/ps-button[1]').click()
def registration(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="SHELL_MENU.ITEM0040"]/a').click()
def add_abon(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="menu-CLIR.ITEM0020"]').click()
def regular_msisdn(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[2]/div[2]/div/ng-form/div[1]/div[1]/div[1]/ps-radio-group/label[2]/span[2]').click()
def kommutator(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[2]/div[2]/div/ng-form/div[1]/div[2]/ps-splitter/ps-splitter-zone[1]/div/div[1]/div[1]/table/tbody/tr[5]/td[2]/div/div[1]/div').click()
def gsm_hw(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[10]/div/ps-list-item[2]/div').click()
def free_numbers(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[2]/div[2]/div/ng-form/div[1]/div[2]/ps-splitter/ps-splitter-zone[1]/div/div[1]/div[1]/table/tbody/tr[7]/td[2]/div/div/div[2]/ps-list-item[74]/div').click()
def sim_cart(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[2]/div[2]/div/ng-form/div[1]/div[2]/ps-splitter/ps-splitter-zone[2]/div/ps-tabs/div[1]/ul/li[2]/a').click()
def find(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="PS_SBMS_WORK_WINDOW"]/div[2]/div[2]/div/ng-form/div[2]/div/ps-button[1]').click()
def cancel(self):
browser = self.browser
browser.find_element_by_xpath('//*[@id="SSW_WORKFRAMES_CONTAINER"]/div/div/div/div/div/div/ps-button[2]').click()
class mouse_move():
def initialise():
pyautogui.PAUSE = 1.5
pyautogui.FAILSAFE = True
pyautogui.size()
pyautogui.position()
pyautogui.moveTo(370,190,duration=0.5)
pyautogui.click(370,190,duration=0.5)
pyautogui.write("777772194") #input of msisdn
def triple_dots():
pyautogui.moveTo(687,244,duration=0.5)
pyautogui.click(687,244,duration=0.5)
def find():
pyautogui.moveTo(637,860,duration=0.5)
pyautogui.click(637,860,duration=0.5)
def msisdn():
pyautogui.moveTo(876,777,duration=0.5)
pyautogui.click(876,777,duration=0.5)
def ICC():
pyautogui.moveTo(865,675,duration=0.5)
pyautogui.click(865,675,duration=0.5)
class stable():
def stage():
start1 = SBMS()
start1.start()
start1.auth()
mouse = mouse_move()
mouse_move.initialise()
start1.search()
sleep(1)
start1.registration()
sleep(1)
start1.add_abon()
sleep(1)
mouse_move.triple_dots()
sleep(1)
start1.regular_msisdn()
sleep(1)
start1.kommutator()
sleep(1)
start1.gsm_hw()
sleep(1)
start1.free_numbers()
sleep(1)
mouse_move.find()
sleep(1)
mouse_move.msisdn()
sleep(1)
start1.sim_cart()
sleep(1)
mouse_move.ICC()
sleep(1)
start1.find()
sleep(5)
start1.cancel()
def parsss():
go = stable()
stable.stage()
parss = parsss()
Ответы (1 шт):
В подключаемых скриптах всё, что не должно сразу выполняться при подключении, должно быть обёрнуто в такую проверку:
if __name__ == "__main__":
Например, вы делаете такой импорт:
from pars import *
Файл pars.py у вас заканчивается таким кодом:
def parsss():
go = stable()
stable.stage()
parss = parsss()
Этот код сразу выполнится при таком импорте. Но я так понимаю, вы этого не хотите при импорте, вы хотите, чтобы импортировались только функции из этого файла. Тогда вы должны оформить этот файл так:
def parsss():
go = stable()
stable.stage()
if __name__ == "__main__":
parss = parsss()
В этом случае строка parss = parsss() выполнится только если запускать сам скрипт pars.py. А если его импортировать, эта строка уже не будет выполняться.
Тоже самое нужно сделать со всеми вашими файлами, которые вы импортируете. В стандартных библиотеках такие проверки уже есть, если они там нужны.