【问题标题】:How to call all the functions in Selenium when a page is refreshed?页面刷新时如何调用 Selenium 中的所有函数?
【发布时间】:2018-02-13 06:26:04
【问题描述】:

我在登录页面上使用 Python 中的 selenium 自动化。我已使用以下方式在电子邮件和密码文本框中发送我的密钥:

driver.find_element_by_id("loginId").sendKeys("mailid")

driver.find_element_by_id("pass").send_Keys("password")

当我点击 Log In 按钮时,页面会刷新,以防万一我的 ID 和密码组合错误。但是我怎样才能实现自动化,以便在刷新页面时,至少再次填充 id 和 pass 字段?或者这意味着如果我的密码错误并且我再次重定向到同一页面,我该如何再次填写这些框。如何判断页面是否自动刷新?

def login():
     driver.find_element_by_id("usernameId").send_keys('username')
     driver.find_element_by_id("pwd").send_keys('password')
     driver.find_element_by_id("logIn").click()
     # tell me what to write here in case I got an error saying invalid id and pass combination.

login()

【问题讨论】:

  • 你想达到什么目的?如果您正在测试错误消息,那么您可以检查它。如果没有,那么您可能应该提供有效的凭据。在(自动化)测试中,尝试和重做东西几乎没有意义,您通常会努力使测试用例简洁明了。如果您想测试重做,那么只需再次编写相同的代码。 (使用不同的通行证??)
  • 有一个验证码框,假设我输入了错误的验证码。
  • 为什么要在测试用例中这样做?无论如何,您是否尝试过再次编写相同的行?您尝试了哪些方法,哪些方法不起作用?
  • 有一个验证码框,假设我输入了错误的验证码。假设页面刷新时弹出“验证码不正确”。在这种情况下,我希望自动输入 id 和 pass 文本字段。我该怎么办?

标签: python selenium automation


【解决方案1】:

因为很多时候我需要很多最好手动完成的事情,例如登录、验证码、机器人检查、身份验证、扩展某些 cookie 等

我使用文件夹作为配置文件,我运行:

chrome_options = Options()
chrome_options.add_argument("user-data-dir=custom_folder_1") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com")

然后我手动安装扩展程序并执行我现在需要的登录,每次我使用该文件夹启动 Webdriver 时,一切都在那里

chrome_options = Options()
chrome_options.add_argument("user-data-dir=custom_folder_1") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com") #Now you can see the logins done are present

优点是您可以使用具有不同设置和扩展的多个文件夹,而无需安装和卸载扩展、更改设置、更改登录等

【讨论】:

    猜你喜欢
    • 2013-10-07
    • 2020-12-21
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2017-05-06
    • 2018-02-26
    相关资源
    最近更新 更多