Python自動化第六天(2)-電商系統自動化用例

編程語言 Python PostScript 科技 江南才盡 2017-05-09

# coding=utf-8

import unittest

import time

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

ecshop = "http://172.16.3.158/ecshop/"

class Ecshop(unittest.TestCase):

def setUp(self):

driver = webdriver.Firefox()

driver.implicitly_wait(10)

driver.maximize_window()

self.driver = driver

return

def _login(self, driver, username, password):

# 點擊鏈接,跳轉到登錄頁面

driver.find_element_by_css_selector("a[href='user.php']").click()

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/user.php", "跳轉到登錄頁面失敗!")

# 輸入用戶名和密碼

driver.find_element_by_name("username").clear()

driver.find_element_by_name("username").send_keys(username)

driver.find_element_by_name("password").clear()

driver.find_element_by_name("password").send_keys(password)

# 點擊登錄

driver.find_element_by_css_selector("input[name='submit']").click()

return

def test_login(self):

driver = self.driver

driver.get(ecshop)

self._login(driver, "tom", "123456")

time.sleep(5)

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/", "登錄失敗!")

def test_shopping(self):

driver = self.driver

driver.get(ecshop)

##################### 登錄 ######################

self._login(driver, "tom", "123456")

time.sleep(5)

##################### 選購商品 #####################

phoneType = driver.find_element_by_css_selector("a[href='category.php?id=1']")

ActionChains(driver).move_to_element(phoneType).perform()

driver.find_element_by_link_text(u"小型手機").click()

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/category.php?id=3", "跳轉到商品搜索頁面失敗!")

# 選擇諾基亞N85,點擊立即購買

driver.find_element_by_css_selector("a[href='goods.php?id=32']").click()

time.sleep(1)

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/goods.php?id=32", "跳轉到商品信息頁面失敗!")

# 選擇所有配件

driver.find_element_by_id("spec_value_158").click()

driver.find_element_by_id("spec_value_159").click()

driver.find_element_by_id("spec_value_157").click()

# 立即購買

driver.find_element_by_css_selector("a[href='javascript:addToCart(32)']").click()

time.sleep(1)

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/flow.php?step=cart", "跳轉到購物車頁面失敗!")

# 選擇數量

# driver.find_element_by_id("goods_number_2668").clear()

driver.find_element_by_css_selector("input[class='inputBg'][value='1']").clear()

driver.find_element_by_css_selector("input[class='inputBg'][value='1']").send_keys("2")

# 更新購物車

#driver.find_element_by_css_selector("input[value='更新購物車']").click()

driver.find_element_by_css_selector("input[value='更新購物車']").submit()

time.sleep(5)

# 去結算

driver.find_element_by_css_selector("a[href='flow.php?step=checkout']").click()

time.sleep(1)

self.assertEqual(driver.current_url, "http://172.16.3.158/ecshop/flow.php?step=checkout", "跳轉到結算頁面失敗!")

# 修改收貨人信息

driver.find_element_by_css_selector("a[href='flow.php?step=consignee']").click()

# 中國

country = driver.find_element_by_name("country")

country.find_element_by_css_selector("option[value='1']").click()

# 廣東省

province = driver.find_element_by_name("province")

province.find_element_by_css_selector("option[value='20']").click()

# 深圳市

city = driver.find_element_by_name("city")

city.find_element_by_css_selector("option[value='233']").click()

# 南山區

district = driver.find_element_by_name("district")

district.find_element_by_css_selector("option[value='2414']").click()

driver.find_element_by_name("consignee").clear()

driver.find_element_by_name("consignee").send_keys("Lizhichao")

driver.find_elements_by_name("Submit")[0].click()

# 配送方式:申通

driver.find_element_by_css_selector("input[name='shipping'][value='5']").click()

# 支付方式:銀行匯款

driver.find_element_by_css_selector("input[name='payment'][value='2']").click()

# 精品包裝

driver.find_element_by_css_selector("input[name='pack'][value='1']").click()

# 訂單附言

driver.find_element_by_name("postscript").clear()

driver.find_element_by_name("postscript").send_keys(u"親,請速度發貨!")

# 提交訂單

driver.find_element_by_css_selector("input[src='themes/default/images/bnt_subOrder.gif']").click()

time.sleep(1)

# msg = driver.find_element_by_tag_name("h6")

#

# index = msg.text.encode("utf-8").find("您的訂單已提交成功")

# self.assertTrue(index != -1, "提交訂單失敗")

source = driver.page_source

index = source.encode("utf-8").find("您的訂單已提交成功")

self.assertTrue(index != -1, "提交訂單失敗")

def tearDown(self):

self.driver.quit()

if __name__ == '__main__':

# unittest.main()

suite = unittest.TestSuite()

#suite.addTest(Ecshop("test_login"))

suite.addTest(Ecshop("test_shopping"))

unittest.TextTestRunner().run(suite)

相關推薦

推薦中...