这边继续讲登陆和登出的界面,现在有越来越多的登陆界面设计中英文登陆界面,或多语言登陆界面,一般以下拉框的形式存在
登陆语言选择.png对这个界面使用firebug-firepath查看
firebug-firepath.png老规矩先上下代码
# _*_ coding: utf-8 _*_
import unittest,time,re
from time import strftime, localtime
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchAttributeException
import HTMLTestRunner
import mod_lang
class LoginLang(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.implicitly_wait(30)
self.base_url="http://192.168.1.131"
self.verificationErrors=[]
self.accept_next_alert=True
def test_loginlangadmin(self):
'''
1.用户名填入admin,密码填入正确密码,语言循环选择,点击“Login”
2.点击“Logout”登出,并检查提示语
'''
driver=self.driver
driver.get(self.base_url+"/")
try:
driver.implicitly_wait(10) #智能等待10
for Value,warm in mod_lang.Loginlang().items():
driver.find_element_by_id("username").send_keys("admin")
driver.find_element_by_id("secret").send_keys("password")
Select(driver.find_element_by_id('language')).select_by_value(Value)
driver.find_element_by_id("login_button").click()
time.sleep(3)
driver.switch_to_alert().accept()
driver.find_element_by_xpath(".//*[@id='nav']/ul/li[1]/a").click()
alert = driver.switch_to_alert().text
if warm==alert:
driver.switch_to_alert().accept()
time.sleep(3)#等待3
else:
driver.get_screenshot_as_file(u"D:/python/selenium/error_png/1.login/1.4/%s.png" % datetime.now().strftime("%Y%m%d.%H%M%S.%f")[:-3])
except:
driver.get_screenshot_as_file(u"D:/python/selenium/error_png/1.login/1.4/%s.png" % datetime.now().strftime("%Y%m%d.%H%M%S.%f")[:-3])
def tearDown(self):
time.sleep(3)
self.driver.quit()
self.assertEqual([],self.verificationErrors)
if __name__=="__main__":
suite=unittest.TestSuite()
suite.addTest(LoginLang("test_loginlangadmin"))
unittest.TextTestRunner().run(suite)
下面是引用的函数,创建一个mod_lang.py
# _*_ coding: utf-8 _*_
def Loginlang():
Language_Values={'en':'Are you sure you want to logout?',
'zh_CN':u'您确认要退出?',
'zh_TW': u'您確認要退出?'}
return Language_Values
1.这个函数主要涉及一个是语言选择,一个涉及到的是弹出窗口信息的验证,弹出的窗口信息验证主要是验证是否对应语言
2.选择下拉框
首先需要
from selenium.webdriver.support.ui import Select
如果你使用的是pycharm可以按住ctrl加鼠标点击Select,然后你就可以查看下select.py的文件,打开后我们可以看到里面的举例
Paste_Image.png
所以根据刚才firepath显示的
firebug-firepath.png
结合select.py文件中select_by_value() 方法,我们就写出下面的代码
Select(driver.find_element_by_id('language')).select_by_value(Value)
3.弹出窗口信息
Paste_Image.png因为弹窗比较是一个具有唯一性的警告信息,所以可以用这种简便 的方法处理。
获取弹出窗口的文本信息
alert = driver.switch_to_alert().text
把获取到得警告信息和我们正确的警告信息做对比,如果相同则接受这个信息用.accept()
if warm==alert:
driver.switch_to_alert().accept()
网友评论