【问题标题】:Need help understanding looping a program/ nested loops in Python需要帮助理解 Python 中的循环程序/嵌套循环
【发布时间】:2018-07-05 16:52:58
【问题描述】:

正在开发一个程序来自动化我使用 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

显然,这不起作用,并导致变量中的所有电子邮件地址都被循环访问,并且然后代码继续。我想要的是选择一个电子邮件地址,执行程序的其余部分,然后循环回到开头并继续变量中的下一个电子邮件地址。

我很确定解决方案是这里的嵌套循环,这是一个非常基本的问题,但我不知道如何设置它。同样,程序的其余部分运行良好,我只是想找出一种方法来循环通过程序,更改登录信息,直到变量结束。我希望这是有道理的。

【问题讨论】:

  • 为什么不把剩下的代码放在你的循环里,缩进4个空格就行了。
  • 哇,刚刚试了一下,结果完全符合我的期望。我有一种感觉,这是一个简单的解决方案。谢谢!

标签: python loops selenium nested iteration


【解决方案1】:

您要为每个电子邮件地址运行的所有内容都需要在for email in emails: 行下缩进。 不需要嵌套循环。

for email in emails:
    stuff_that_runs_once_per_email_address

stuff_that_runs_independent_of_email_address

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 2015-07-30
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多