Нужна помощь в понимании зацикливания программы / вложенных циклов в Python - PullRequest
0 голосов
/ 05 июля 2018

Работа над программой для автоматизации некоторых ежедневных функций, которые я выполняю, используя Selenium для взаимодействия с браузером.

У меня есть скрипт, работающий в точности так, как я хочу, с одной учетной записью электронной почты, однако у меня есть несколько, которые я хотел бы автоматизировать. Мне бы хотелось, чтобы он мог выбрать одно письмо, завершить весь код, вернуться к началу и продолжить с начала, но с моей следующей учетной записью в переменной.

Например, мои данные для входа хранятся так:

emails=('email1@email.com',
        'email2@email.com',
        'email3@email.com',
        )

myPassword=('passwordtext')

И вызывается при входе в систему таким образом, просто для справки:

for email in emails:
    emailid=driver.find_element_by_name('email')
    emailid.send_keys('email') # this is the variable that would need to change each time 

password=driver.find_element_by_name('password')
password.click()
password.send_keys(myPassword)
password.send_keys(Keys.ENTER)

# then, several more work functions are completed using Selenium

Очевидно, что это не работает и приводит к циклической переброске всех адресов электронной почты в переменной, и затем код продолжается. Я хотел бы, чтобы был выбран один адрес электронной почты, остальная часть программы выполняется, а затем она возвращается к началу и переходит к следующему адресу электронной почты в переменной.

Я почти уверен, что решение - это вложенный цикл, и что это довольно простой вопрос, но я не могу понять, как его настроить. Опять же, остальная часть программы работает отлично, я просто пытаюсь найти способ перебрать программу, изменяя только информацию для входа в систему, до конца переменной. Я надеюсь, что это имеет смысл.

1 Ответ

0 голосов
/ 05 июля 2018

Все, что вы хотите запустить для каждого адреса электронной почты, должно иметь отступ в строке for email in emails:. Нет необходимости во вложенном цикле.

for email in emails:
    stuff_that_runs_once_per_email_address

stuff_that_runs_independent_of_email_address
...