Python 和 Selenium 的授权异常

Authorization exception with Python and Selenium

我对 Python 和 Selenium 很感兴趣,有一个问题。如果我在授权期间提供了错误的凭据,如何处理错误消息。

从代码中您可以看到,目前我只是希望在登录后看到下一页,如果它不会在 8 秒内弹出,return 授权错误。对我来说这很蹩脚,处理登录失败消息会很好。

我的代码有一部分:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
import sys
import urllib.request



if urllib.request.Request('https://url.i.want/to/open'): #check if it is reachable and open in positive response

driver = webdriver.Firefox (executable_path='path/to/webdriver')
driver.get('https://open.url/with/browser')
driver.maximize_window()
driver.implicitly_wait(2)


#Login page information. Contains Account Name, Username and Password
AccountName = driver.find_element_by_id('account')
AccountName.send_keys('accountname')
Login = driver.find_element_by_id('login')
Login.send_keys('login')
Password = driver.find_element_by_id('pw')
Password.send_keys('password')

driver.find_element_by_css_selector('#login_btn').click()

time.sleep(8) #Time to login (Not very elegant but ok for prototype)

try:
    #close pop-up infomation window
    driver.find_element_by_css_selector('some_popup_window').click()
except:
    print('Please check login credentials')
    sys.exit()

首先,用户time.sleep()不要从这里检查隐式和显式等待:Wait methods for python

然后处理错误消息尝试断言:Assert/VerifyElementPresent with Python and WebDriver?

此外,您的代码也没有任何断言,请尝试在每个操作之后添加断言以验证您的测试。

使用driver.getTitle()方法,并在登录后与页面标题进行比较,页面标题与预期的页面标题一致,这样可以确保您已登录到您的应用程序。