1、今天写的脚本记录下:
IbuAutoScript.py
#!C:/Python27
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver import ActionChains
import unittest, time, re,random
class 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()