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()方法,并在登录后与页面标题进行比较,页面标题与预期的页面标题一致,这样可以确保您已登录到您的应用程序。
我对 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()方法,并在登录后与页面标题进行比较,页面标题与预期的页面标题一致,这样可以确保您已登录到您的应用程序。