一个工作中使用的自动化脚本

本文介绍了一个使用Selenium WebDriver进行网站自动化测试的具体案例,详细展示了如何通过Python脚本完成一系列测试步骤,包括填写表单、上传文件等操作。
  1 # -*- coding: utf-8 -*-
  2 from selenium import webdriver
  3 from selenium.webdriver.common.by import By
  4 from selenium.webdriver.common.keys import Keys
  5 from selenium.webdriver.support.ui import Select
  6 from selenium.common.exceptions import NoSuchElementException
  7 from selenium.common.exceptions import NoAlertPresentException
  8 import unittest, time, re
  9 from time import sleep
 10 import unittest
 11 import HTMLTestRunner
 12 
 13 class Amei(unittest.TestCase):
 14     def setUp(self):
 15         self.driver = webdriver.Firefox()
 16         self.driver.implicitly_wait(30)
 17         self.base_url = "******"
 18         self.verificationErrors = []
 19         self.accept_next_alert = True
 20 
 21     def test_amei(self):
 22         driver = self.driver
 23         driver.get(self.base_url + ":8081/ybl/ydc/cms/productYbl/v_add.do?")
 24         driver.find_element_by_id("UOrgname").clear()
 25         driver.find_element_by_id("UOrgname").send_keys(u"")
 26         driver.find_element_by_css_selector("li").click()
 27         Select(driver.find_element_by_id("applyNo")).select_by_visible_text("R20170111165645")
 28         driver.find_element_by_id("proName").clear()
 29         #项目名称(需要修改)
 30         driver.find_element_by_id("proName").send_keys(u"【利活宝】1135")
 31         Select(driver.find_element_by_id("proType")).select_by_visible_text(u"商业保理")
 32         driver.find_element_by_id("orgDeployment").clear()
 33         driver.find_element_by_id("orgDeployment").send_keys(u"######")
 34         driver.find_element_by_css_selector("#autoSuggestionsList1 > li").click()
 35         Select(driver.find_element_by_id("gid")).select_by_visible_text(u"#######")
 36         driver.find_element_by_id("fundAmountOnShow").clear()
 37         #募集金额(根据需要修改)
 38         driver.find_element_by_id("fundAmountOnShow").send_keys("1,500,000")
 39         driver.find_element_by_xpath(".//*[@id='leastAmountOnShow']").clear()
 40         driver.find_element_by_xpath(".//*[@id='leastAmountOnShow']").send_keys("100")
 41         driver.find_element_by_id("yearRate").clear()
 42         #年化利率(根据需要修改)
 43         driver.find_element_by_id("yearRate").send_keys("8")
 44         Select(driver.find_element_by_id("proTransferPlans")).select_by_visible_text(u"保理6/7/8/9")
 45         driver.find_element_by_id("noticeTime").clear()
 46         #预告时间
 47         driver.find_element_by_id("noticeTime").send_keys("2017-02-09 17:50:00")
 48         driver.find_element_by_xpath(".//*[@id='raiseBTime']").clear()
 49         #募集开始时间
 50         driver.find_element_by_xpath(".//*[@id='raiseBTime']").send_keys("2017-02-10 15:30:00")
 51         driver.find_element_by_id("raiseETime").clear()
 52         #募集结束时间
 53         driver.find_element_by_id("raiseETime").send_keys("2017-02-28 18:30:00")
 54         driver.find_element_by_id("rateTime").clear()
 55         #预计起息时间
 56         driver.find_element_by_id("rateTime").send_keys("2017-03-01 18:30:00")
 57         driver.find_element_by_id("repayTime").click()
 58         driver.find_element_by_id("repayTime").clear()
 59         #还款时间
 60         driver.find_element_by_id("repayTime").send_keys("2017-06-12 11:30:00")
 61         driver.find_element_by_name("leastHoldDays").clear()
 62         driver.find_element_by_name("leastHoldDays").send_keys("10")
 63         driver.find_element_by_name("clearHoldDays").clear()
 64         driver.find_element_by_name("clearHoldDays").send_keys("10")
 65         driver.find_element_by_id("comAddr").clear()
 66         driver.find_element_by_id("comAddr").send_keys("1111")
 67         driver.find_element_by_id("regAmountOnShow").clear()
 68         driver.find_element_by_id("regAmountOnShow").send_keys("1,000")
 69         driver.find_element_by_id("comSize").clear()
 70         driver.find_element_by_id("comSize").send_keys("1000")
 71         driver.find_element_by_id("regDate").click()
 72         driver.find_element_by_id("regDate").send_keys("2016-09-01")
 73         driver.find_element_by_id("attachmentFile1").clear()
 74         driver.find_element_by_id("attachmentFile1").send_keys(u"E:\\tao\\后台发标资料\\datongshixinglongfashangmaocompic.zip")
 75         driver.find_element_by_css_selector("input.upload-button").click()
 76         sleep(5)
 77         driver.find_element_by_id("attachmentFile2").clear()
 78         driver.find_element_by_id("attachmentFile2").send_keys(u"E:\\tao\\后台发标资料\\datongshixinglongfashangmaofilepic.zip")
 79         driver.find_element_by_css_selector("#afc2 > input.upload-button").click()
 80         sleep(5)
 81         driver.find_element_by_id("attachmentFile3").clear()
 82         driver.find_element_by_id("attachmentFile3").send_keys(u"E:\\tao\\后台发标资料\\EBL2015090200001.pdf")
 83         driver.find_element_by_css_selector("#afc3 > input.upload-button").click()
 84         sleep(5)
 85         driver.find_element_by_id("attachmentFile4").clear()
 86         driver.find_element_by_id("attachmentFile4").send_keys(u"E:\\tao\\后台发标资料\\EBL2015090200001.zip")
 87         driver.find_element_by_css_selector("#afc4 > input.upload-button").click()
 88         sleep(5)
 89         driver.find_element_by_id("attachmentFile5").clear()
 90         driver.find_element_by_id("attachmentFile5").send_keys(u"E:\\tao\\后台发标资料\\017.jpg")
 91         driver.find_element_by_css_selector("#afc5 > input.upload-button").click()
 92         sleep(5)
 93         driver.find_element_by_id("proServiceRate").clear()
 94         driver.find_element_by_id("proServiceRate").send_keys("0")
 95         Select(driver.find_element_by_id("comTrade")).select_by_visible_text(u"零售行业")
 96         Select(driver.find_element_by_id("comCategory")).select_by_visible_text(u"家居用品")
 97         #可用/不可用
 98         Select(driver.find_element_by_id("isCouponAble")).select_by_visible_text(u"可用")
 99         driver.find_element_by_id("introduction").clear()
100         driver.find_element_by_id("introduction").send_keys("1")
101         driver.find_element_by_id("qualifications").clear()
102         driver.find_element_by_id("qualifications").send_keys("11")
103         driver.find_element_by_id("leadUse").clear()
104         driver.find_element_by_id("leadUse").send_keys("111")
105         driver.find_element_by_name("repaySafe").clear()
106         driver.find_element_by_name("repaySafe").send_keys("1111")
107         driver.find_element_by_id("proSafelyInfo").clear()
108         driver.find_element_by_id("proSafelyInfo").send_keys("1111")
109         driver.find_element_by_id("busiCo").clear()
110         driver.find_element_by_id("busiCo").send_keys("111111")
111         sleep(3)
112         driver.find_element_by_xpath(".//*[@id='jvForm']/table[2]/tbody/tr[24]/td/input[2]").click()
113         sleep(2)
114 
115     def test_fabu(self):
116         driver = self.driver
117         driver.get(self.base_url + "/yblweb/index.html")
118         driver.find_element_by_css_selector("i").click()
119         driver.find_element_by_id("user_name").click()
120         driver.find_element_by_id("user_name").click()
121         driver.find_element_by_id("user_name").clear()
122         driver.find_element_by_id("user_name").send_keys("fhrt")
123         driver.find_element_by_id("user_password").click()
124         driver.find_element_by_id("user_password").clear()
125         driver.find_element_by_id("user_password").send_keys("123456")
126         driver.find_element_by_css_selector("button.bt").click()
127         driver.find_element_by_link_text(u"融资管理").click()
128         driver.find_element_by_link_text(u"发布").click()
129         driver.find_element_by_link_text(u"发布项目").click()
130         driver.find_element_by_id("password").click()
131         driver.find_element_by_id("password").clear()
132         driver.find_element_by_id("password").send_keys("123456")
133         #driver.find_element_by_id("captcha").send_keys("abcd")
134         time.sleep(10)
135         driver.find_element_by_id("submit_button").click()
136 
137     def is_element_present(self, how, what):
138         try: self.driver.find_element(by=how, value=what)
139         except NoSuchElementException as e: return False
140         return True
141 
142     def is_alert_present(self):
143         try: self.driver.switch_to_alert()
144         except NoAlertPresentException as e: return False
145         return True
146 
147     def close_alert_and_get_its_text(self):
148         try:
149             alert = self.driver.switch_to_alert()
150             alert_text = alert.text
151             if self.accept_next_alert:
152                 alert.accept()
153             else:
154                 alert.dismiss()
155             return alert_text
156         finally: self.accept_next_alert = True
157 
158     def tearDown(self):
159         self.driver.quit()
160         self.assertEqual([], self.verificationErrors)
161 
162 if __name__ == "__main__":
163     unittest.main()

 

转载于:https://www.cnblogs.com/mtfan01/p/7048048.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值