@Wellspring

Как исходя из условия присвоить значение переменной?

Добрый день.
Сделал скрипт для настройки камер.
Настройки могут отличаться, в зависимости от класса камер.
Требуется чтобы в начале скрипта я указывал класс камеры и исходя из этого в настройках подставлялись нужные значений. Например, если класс 1, то битрейт 4000, если класс 2, то битрейт 2000, в примере я менял ip адрес ntp сервера.
Так как я только начинаю учить python, не придумал ничего умнее, чем засунуть весь все тело настроек в инструкцию после условия.
Работает, но получилось очень громоздко. Буду благодарен, если подскажете более элегантное решение.

from selenium import webdriver
import time

ip = input('Введите ip')
ip = (f'http://{ip}')
type = input('Введите тип камеры')
type=int(type)

if type < 3:
    browser=webdriver.Firefox()
    browser.get(f'http://{ip}')


    textarea=browser.find_element_by_css_selector('#username')
    textarea.send_keys('admin')

    textarea=browser.find_element_by_css_selector('#password')
    textarea.send_keys('password')

    submit=browser.find_element_by_css_selector('.btn')
    submit.click()
    time.sleep(5)

if type < 3:
    browser=webdriver.Firefox()
    browser.get(f'http://{ip}')


    textarea=browser.find_element_by_css_selector('#username')
    textarea.send_keys('admin')

    textarea=browser.find_element_by_css_selector('#password')
    textarea.send_keys('password')

    submit=browser.find_element_by_css_selector('.btn')
    submit.click()
    time.sleep(5)

    set=browser.find_element_by_css_selector('CSS-селектор')
    set.click()
    time.sleep(5)

    
    system=browser.find_element_by_css_selector('CSS-селектор')
    system.click()
    ntp=browser.find_element_by_css_selector('CSS-селектор')
    ntp.click()
    time.sleep(2)
    ntpip=browser.find_element_by_css_selector('CSS-селектор')
    ntpip.click()
    ntpip.clear()
    ntpip.send_keys('10.0.0.1')
    ntpport=browser.find_element_by_css_selector('CSS-селектор')
    ntpport.click()
    ntpport.clear()
    ntpport.send_keys('1')
    ntpinterval=browser.find_element_by_css_selector('CSS-селектор')
    ntpinterval.click()
    ntpinterval.clear()
    ntpinterval.send_keys('60')
    ntpsave=browser.find_element_by_css_selector('CSS-селектор')
    ntpsave.click()
elif type == 3:
    browser=webdriver.Firefox()
    browser.get(f'http://{ip}')


    textarea=browser.find_element_by_css_selector('#username')
    textarea.send_keys('admin')

    textarea=browser.find_element_by_css_selector('#password')
    textarea.send_keys('password')

    submit=browser.find_element_by_css_selector('.btn')
    submit.click()
    time.sleep(5)

    set=browser.find_element_by_css_selector('CSS-селектор')
    set.click()
    time.sleep(5)

    
    system=browser.find_element_by_css_selector('CSS-селектор')
    system.click()
    ntp=browser.find_element_by_css_selector('CSS-селектор')
    ntp.click()
    time.sleep(2)
    ntpip=browser.find_element_by_css_selector('CSS-селектор')
    ntpip.click()
    ntpip.clear()
    ntpip.send_keys('10.0.0.2')
    ntpport=browser.find_element_by_css_selector('CSS-селектор')
    ntpport.click()
    ntpport.clear()
    ntpport.send_keys('1')
    ntpinterval=browser.find_element_by_css_selector('CSS-селектор')
    ntpinterval.click()
    ntpinterval.clear()
    ntpinterval.send_keys('90')
    ntpsave=browser.find_element_by_css_selector('CSS-селектор')
    ntpsave.click()
else
       browser=webdriver.Firefox()
    browser.get(f'http://{ip}')


    textarea=browser.find_element_by_css_selector('#username')
    textarea.send_keys('admin')

    textarea=browser.find_element_by_css_selector('#password')
    textarea.send_keys('password')

    submit=browser.find_element_by_css_selector('.btn')
    submit.click()
    time.sleep(5)

    set=browser.find_element_by_css_selector('CSS-селектор')
    set.click()
    time.sleep(5)

    
    system=browser.find_element_by_css_selector('CSS-селектор')
    system.click()
    ntp=browser.find_element_by_css_selector('CSS-селектор')
    ntp.click()
    time.sleep(2)
    ntpip=browser.find_element_by_css_selector('CSS-селектор')
    ntpip.click()
    ntpip.clear()
    ntpip.send_keys('10.0.0.3')
    ntpport=browser.find_element_by_css_selector('CSS-селектор')
    ntpport.click()
    ntpport.clear()
    ntpport.send_keys('1')
    ntpinterval=browser.find_element_by_css_selector('CSS-селектор')
    ntpinterval.click()
    ntpinterval.clear()
    ntpinterval.send_keys('120')
    ntpsave=browser.find_element_by_css_selector('CSS-селектор')
    ntpsave.click()
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@Drill
Повторяющийся код оформить в виде функции, и нужные значения передавать через аргументы функции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Кстати, в selenium есть своё ожидание. Почитай об этом. Ну а по оформлению: функции наше всё.
Ответ написан
Комментировать
Юрий простите пожалуйста мое любопытство - а Method Chaining builder pattern это вообще питон вэй ? я пробираюсь задворками из джавы и там все более лучше ^W часто по другому
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы