Python+Selenium注册登录各个功能流程验证脚本
来源:互联网 发布:巴洛克的艺术风格 知乎 编辑:程序博客网 时间:2024/06/15 11:06
1、今天写的脚本记录下:
IbuAutoScript.py
#!C:/Python27 #coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.select import Selectfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.common.exceptions import NoAlertPresentExceptionfrom selenium.webdriver import ActionChainsimport unittest, time, re,randomclass Aaa(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.base_url = "http://intl.sit.xxx.com:8980" self.verificationErrors = [] self.accept_next_alert = True def test_aaa(self): driver = self.driver driver.get(self.base_url + "/") driver.maximize_window() # 浏览器全屏显示 driver.find_element_by_link_text(u"登录").click() time.sleep(2) driver.find_element_by_id("loginname").clear() driver.find_element_by_id("loginname").send_keys("a.123456") driver.find_element_by_id("mmPwd").clear() driver.find_element_by_id("mmPwd").send_keys("s.123456") time.sleep(2) input_user = driver.find_element_by_tag_name('input').get_attribute('value') driver.find_element_by_xpath("//*[@id='lgoinForm']/div[2]/a").click() print u"\n0.0、登录成功,即将执行自动化功能测试用例..." #校验数据是否登录; print u"\n\t0.1、输入的用户名:",input_user time.sleep(1) try: driver.find_element_by_xpath("//*[@id='sf-top-right']/ul/li[3]/a").text == (input_user) user = driver.find_element_by_xpath("//*[@id='sf-top-right']/ul/li[3]/a").text print u"\n1、校验数据正确,登录成功的用户为:",user except Exception: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\UserResult_1.png') print (u"\n1、校验登录用户_不正确,登录失败错误已截图保存") time.sleep(1) driver.find_element_by_xpath(u"(//a[contains(text(),'首页')])[2]").click() time.sleep(1) print u"\n2、进入首页,价格时效查询功能" driver.find_element_by_xpath("//*[@id='price_inquiry']/div[2]/form/fieldset/div[1]/div/span").click() driver.find_element_by_xpath("//*[@id='price_inquiry']/div[2]/form/fieldset/div[1]/div/div/div/div[2]/div[1]/dl[4]/dd/a[3]").click() #香港 print u"\n3、价格时效查询选择出发地" driver.find_element_by_xpath("//*[@id='price_inquiry']/div[2]/form/fieldset/div[2]/div/span/span[1]").click() driver.find_element_by_xpath("//*[@id='price_inquiry']/div[2]/form/fieldset/div[2]/div/div/div/div[2]/div[1]/dl[2]/dd/a[11]").click() #美国 //*[@id='price_inquiry']/div[2]/form/fieldset/div[2]/div/div/div/div[2]/div[1]/dl[2]/dd/a[11] print u"\n4、价格时效查询选择目的地" driver.find_element_by_id("weight").clear() driver.find_element_by_id("weight").send_keys("1") driver.find_element_by_css_selector("button.sf-cx-box-btn.btn").click() time.sleep(1) #校验数据是否正确; try: driver.find_element_by_xpath("//*[@id='dataList']/tr[1]/td[1]").text == (u"xxx") print u"\n5、校验数据正确,存在产品和服务名为:xxx" except Exception: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\ErrorResult_1.png') print (u"\n5、校验查询结果_不正确,已截图保存") print (u"\n6、通过导航首页Link,进入首页页面") driver.find_element_by_xpath("/html/body/div[3]/ul/li[1]/a").click() driver.find_element_by_xpath("/html/body/div[3]/div[2]/a[2]/i").click() driver.find_element_by_id("orderNos").clear() driver.find_element_by_id("orderNos").send_keys("994732150921,994732146495") driver.find_element_by_css_selector("#waybill_inquiry > div.sf-cx-box > form > fieldset > div.sf-cx-box-btn > button.sf-cx-box-btn.btn").click() #获取验证码 time.sleep(1) driver.find_element_by_id("verificationCode").clear() code = driver.find_element_by_xpath("//*[@id='randomNum']").text print u"\n7、获取到的验证码为:",code driver.find_element_by_id("verificationCode").send_keys(code) print u"\n8、输入的验证码为:",code time.sleep(1) driver.find_element_by_link_text(u"查询").click() time.sleep(2) js_="window.scrollTo(100,600);" driver.execute_script(js_) print (u"\n9、已执行滚动条,下拉") try: driver.find_element_by_xpath("//*[@id='dataList']/div[1]/div[1]/div[4]/span").text == (994732146495) print u"\n10、校验数据正确,xxxxx返回数据正确" except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\IBSE_SF_number_1.png') print (u"\n10、校验查询结果_不正确,xxx返回数据不正确,已截图保存") try: driver.find_element_by_xpath("//*[@id='dataList']/div[2]/div[1]/div[2]/span").text == (994732150921) print u"\n11、校验数据正确,xxx返回数据正确" except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\SISP_SF_number_1.png') print (u"\n11、校验查询结果_不正确,xxx返回数据不正确,已截图保存") time.sleep(1) print u"\n12、进入首页,汇率查询功能" driver.find_element_by_xpath(u"(//a[contains(text(),'首页')])[2]").click() print u"\n13、点击汇率查询按钮" driver.find_element_by_xpath("/html/body/div[3]/div[2]/a[3]").click() element = self.driver.find_element_by_id("coin1") sel = Select(element) print u"\n14、选择币种为:人民币" sel.select_by_value("CNY") element = self.driver.find_element_by_id("coin2") sel = Select(element) print u"\n15、选择需要换算的币种为:美元" sel.select_by_value("USD") driver.find_element_by_xpath("//*[@id='exchangeRate_inquiry_form']/fieldset/div[5]/button").click() print u"\n16、执行汇率查询" try: driver.find_element_by_xpath("//*[@id='searchCoin']").text == (1) txt = driver.find_element_by_xpath("//*[@id='div1']/div/h3").text print u"\n17、校验数据正确,汇率查询接口返回数据正确,查询结果数据为:",txt except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\Coin_1.png') print (u"\n17、校验查询结果_不正确,汇率查询接口返回数据不正确,已截图保存") time.sleep(1) print u"\n18、进入首页,收送范围查询功能" time.sleep(1) driver.find_element_by_xpath(u"(//a[contains(text(),'首页')])[2]").click() print u"\n19、点击收送访问查询按钮,执行查询" driver.find_element_by_xpath("/html/body/div[3]/div[2]/a[5]").click() print u"\n20、选择收寄件区域、省、市、区" time.sleep(1) #driver.execute_script("alert('输入框标红了!')") #time.sleep(5) #接受提示信息 #driver.switch_to_alert().accept() #先定位到父节点,再从父节点找指定节点 driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::span").click() time.sleep(1) driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::div[1]/div/div[2]/div[1]/dl/dd/a").click()#中国 driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::div[1]/div/div[2]/div[2]/dl/dd/a[3]").click()#广东省 driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::div[1]/div/div[2]/div[3]/dl/dd/a[3]").click()#深圳市 driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::div[1]/div/div[2]/div[4]/dl/dd/a[5]").click()#南山区 txt = driver.find_element_by_xpath("//input[@id='cityAddress1']/following-sibling::span/span[2]").text print u"\n21、选择收寄件区域为:",txt driver.find_element_by_xpath("//*[@id='range_inquiry']/div[2]/form/fieldset/div[2]/button").click() print u"\n22、点击查询按钮,执行查询" time.sleep(1) js_="window.scrollTo(100,600);" driver.execute_script(js_) try: driver.find_element_by_xpath("//*[@id='dataList']/li[1]").text == (u"南山街道") txt = driver.find_element_by_xpath("//*[@id='dataList']/li[1]").text print u"\n23、校验数据正确,收寄件服务地区接口数据正确,查询数据存在网点为:",txt except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\Service_Center_1.png') print (u"\n23、校验查询结果_不正确,收寄件区域服务地区接口返回数据不正确,已截图保存") #driver.execute_script("alert('所有用例已执行完!')") #time.sleep(5) print u"\n24、进入首页,进出口规则查询功能" time.sleep(1) driver.find_element_by_xpath(u"(//a[contains(text(),'首页')])[2]").click() driver.find_element_by_xpath("/html/body/div[3]/div[2]/a[6]").click() element = self.driver.find_element_by_id("start0") sel = Select(element) sel.select_by_value("CN") print u"\n25、选择进出口始发国家为:中国" element = self.driver.find_element_by_id("end0") sel = Select(element) sel.select_by_value("KR") element = self.driver.find_element_by_id("sfxz0") sel = Select(element) sel.select_by_value("1")#公司 driver.find_element_by_xpath("//*[@id='sbjz']").send_keys(200) driver.find_element_by_xpath("//*[@id='jjzl']").send_keys(20)#重量 driver.find_element_by_xpath("//*[@id='wpmc']").send_keys(u"文件") print u"\n26、选择查询进出口目的地国家为:韩国"#,txt print u"\n27、点击查询按钮,执行查询" driver.find_element_by_xpath("//*[@id='Import_and_export']/div[2]/form/fieldset/div[8]/button").click() try: driver.find_element_by_xpath("//*[@id='dataList1']/tr[1]/td[1]").text == (1)#索引为1,则存在数据 txt = driver.find_element_by_xpath("//*[@id='dataList1']/tr[1]").text print u"\n28、校验数据正确,进出口规则接口返回始发国家数据正确,查询数据为:",txt except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\InPort_Center_1.png') print (u"\n28、校验数据不正确,进出口规则接口返回始发国家数据不正确,已截图保存") time.sleep(1) print u"\n29、点击目的地国家按钮,查看结果信息" driver.find_element_by_xpath("//*[@id='sf-q--tab']/li[2]/a").click() try: driver.find_element_by_xpath("//*[@id='dataList2']/tr[1]/td[1]").text == (1)#索引为1,则存在数据 txt = driver.find_element_by_xpath("//*[@id='dataList2']/tr[1]").text print u"\n30、校验数据正确,进出口规则接口返回目的地国家数据正确,查询数据为:",txt except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\InPort_mddgj_1.png') print (u"\n30、校验数据不正确,进出口规则接口返回目的地国家数据不正确,已截图保存") js_="window.scrollTo(100,600);" driver.execute_script(js_) time.sleep(1) js_="window.scrollTo(100,0);" driver.execute_script(js_) time.sleep(2) # 将鼠标移动到上面 article = driver.find_element_by_link_text(input_user) ActionChains(driver).move_to_element(article).perform() time.sleep(2) menu = driver.find_element_by_link_text(u"退出") menu.click() time.sleep(2) driver.find_element_by_link_text(u"注册").click() #方法一 seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._-" sa = [] for i in range(8): sa.append(random.choice(seed)) salt = ''.join(sa) #方法二 #salt = ''.join(random.sample(string.ascii_letters + string.digits, 8)) print u"\n31、注册的用户名为:",salt driver.find_element_by_xpath("//*[@id='loginname']").send_keys(salt) driver.find_element_by_xpath("//*[@id='email']").send_keys(salt+"@qq.com") password = ("s.1"+salt) driver.find_element_by_xpath("//*[@id='mmPwd']").send_keys(password) driver.find_element_by_xpath("//*[@id='againPassword']").send_keys(password) print u"\n32、注册的用户密码为:",password seed = "0123456789" sa = [] for i in range(11): sa.append(random.choice(seed)) phone = ''.join(sa) print u"\n33、注册的手机号为:",phone driver.find_element_by_xpath("//*[@id='phone']").send_keys(phone) code = driver.find_element_by_xpath("//*[@id='randomNum']").text driver.find_element_by_xpath("//*[@id='verificationCode']").send_keys(code) #os.system('pause') #raw_input() driver.find_element_by_xpath("//*[@id='_subbtn']").click() time.sleep(2) try: driver.find_element_by_xpath("//*[@id='toemail']").text == (u"请及时进入邮箱打开链接,完成操作")#索引为1,则存在数据 tips = driver.find_element_by_xpath("//*[@id='toemail']").text print u"\n34、注册成功,",tips except: driver.save_screenshot('E:\\pythonScript\\Script\\ERROR\\zhuce_error.png') print (u"\n34、注册失败,错误原因,已截图保存") def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException as e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException as e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)if __name__ == "__main__": unittest.main()
阅读全文
0 0
- Python+Selenium注册登录各个功能流程验证脚本
- selenium+python自动登录脚本
- 实现登录注册验证功能
- python+selenium识别验证码并登录
- python+selenium识别验证码并登录
- python django 用户注册验证登录。。。
- selenium登录脚本
- 简单的登录、注册以及带有验证码功能
- 登录注册功能的实现,核心的验证代码
- APP登录注册流程
- loadrunner注册、登录流程
- python+Selenium模拟登录
- 4selenium+python 登录
- 登录注册验证
- 正则验证注册登录
- 注册登录验证码
- 登录 注册 正则验证
- selenium python 验证码
- 数据结构跑路篇——冒泡排序
- UDP简单例子
- VGG Face测试的Python版本
- 动态顺序表
- 一、python环境搭建
- Python+Selenium注册登录各个功能流程验证脚本
- HTTP method POST is not supported by this URL错误的解决方案
- 配置单臂路由器
- J
- linux下PPTP Server测试环境搭建
- 从文件存取字典,涉及到几个内置函数,对格式的控制
- android studio:ButterKnife无法绑定控件
- Android从Web页面启动App
- Android6.0动态申请权限的两种办法