1
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#登录网址
def the_login(self):
self.get("https://www.baidu.com")
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
2
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#进入网址
def jinru_get(self,url):
self.get(url)
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
3
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#进入网址
def jinru_get(self,url):
self.get(url)
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
4
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#进入网址
def jinru_get(self,url):
self.get(url)
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
5
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#进入网址
def jinru_get(self,url):
self.get(url)
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
6
from selenium import webdriver
from BasePage.BasePage import BasePage
from selenium.webdriver.common.by import By #定位
class Bapa(BasePage):
#继承
def __init__(self,driver):
BasePage.__init__(self,driver)
#进入网址
def jinru_get(self,url):
self.get(url)
#定位元素
def xz_srk(self,*args):
self.dingwei_element(*args)
#点击
def dianji(self,*args):
self.left_click(*args)
#窗口切换
def window(self,n):
self.switch_window(n)
#输入
def shuru(self,test,*args):
self.send_text(test,*args)
import pytest,os,allure,time
from selenium import webdriver
from selenium.webdriver.common.by import By #定位
from BaPa1 import BaPa_001,BaPa_002,BaPa_003,BaPa_004,BaPa_005,BaPa_006
A = BaPa_001.Bapa
B = BaPa_002.Bapa
C = BaPa_003.Bapa
D = BaPa_004.Bapa
E = BaPa_005.Bapa
F = BaPa_006.Bapa
class TestClass():
@classmethod
def setup_class(cls):
cls.driver = webdriver.Chrome('C:/Users\Administrator\PycharmProjects\web\Chrome\Application\chromedriver.exe')
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
def test001(self):
b = A(self.driver)
b.driver.implicitly_wait(30)
b.the_login()
b.shuru("https://www.jd.com/",By.ID,'kw')
b.dianji(By.ID,'su')
#跳转京东
b.dianji(By.XPATH,'//*[@id="1"]/div/div[1]/h3/a')
b.window(1)
def test002(self):
b = B(self.driver)
b.driver.implicitly_wait(30)
b.dianji(By.XPATH,'//*[text()="你好,请登录"]')
b.shuru('无线网卡随身wifi',By.XPATH,'//*[@id="key"]')
time.sleep(1)
b.dianji(By.XPATH,'//*[@id="search"]/div/div[2]/button')
time.sleep(1)
b.dianji(By.XPATH,'//*[@id="J_selector"]/div[4]/div/div[2]/div[1]/ul/li[1]/a')
time.sleep(1)
b.dianji(By.XPATH,'//*[@id="J_selector"]/div[4]/div/div[2]/div[1]/ul/li[4]/a')
time.sleep(1)
b.dianji(By.XPATH,'//*[@id="ad-291-68165182782"]/div[3]/a/div/em')
b.window(2)
def test003(self):
c = C(self.driver)
c.driver.implicitly_wait(30)
c.dianji(By.XPATH,'//*[@id="choose-attr-1"]/div[2]/div[1]/a/i')
time.sleep(1)
c.dianji(By.XPATH,'//*[@id="choose-baitiao"]/div[2]/div[1]/div[1]/a/strong')
time.sleep(1)
c.dianji(By.XPATH,'//*[@id="InitCartUrl"]')
time.sleep(1)
c.dianji(By.XPATH,'//*[@id="settleup-2014"]/div[1]/a')
c.window(3)
def test004(self):
d = D(self.driver)
d.driver.implicitly_wait(30)
# d.dianji(By.XPATH,'//*[@id="cart-body"]/div[2]/div[6]/div/div[2]/div/div/div/div[2]/div[1]/div[2]/a[3]/strong')
time.sleep(1)
#删除购物车
# d.dianji(By.XPATH,'/html/body/div[9]/div[1]/div[2]/div/div/div/div/div[1]/ul/li/label/span[1]/input')
# d.dianji(By.XPATH,'/html/body/div[9]/div[1]/div[2]/div/div/div/div/div[2]/div[2]/a[2]')
#点击我的订单
d.dianji(By.XPATH,'//*[text()="我的订单"]')
d.window(4)
def test005(self):
e = E(self.driver)
e.driver.implicitly_wait(30)
e.dianji(By.XPATH,'//*[@id="track241507496618"]/td[1]/div[1]/div[2]/div[1]/a')
e.window(5)
def test006(self):
f = F(self.driver)
f.driver.implicitly_wait(30)
f.dianji(By.XPATH,'//*[@id="choose-attr-1"]/div[2]/div[1]/a/img')
@classmethod
def teardown_class(cls):
time.sleep(5)
cls.driver.quit()
if __name__ == '__main__':
pytest.main(['--alluredir', 'report/result', 'jh.py']) # 生成json类型的测试报告
aa = 'allure' + 'generate' + './report/result' + '-o' + './report/html ' + '--clean' # 将测试报告转为html格式
# system函数可以将字符串转化成命令在服务器上运行
os.system(aa)
from selenium.webdriver.support.ui import WebDriverWait # 显示等待
from selenium.webdriver.support import expected_conditions as EC # 期望条件
from selenium.webdriver.common.action_chains import ActionChains #鼠标操作
class BasePage():
'''BasePage封装所有界面都公用的方法。例如driver,find_element等'''
'''实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数'''
def __init__(self,driver):
self.driver = driver
# 进入网址
def get(self,url):
self.driver.get(url)
#元素定位,替代八大定位
def dingwei_element(self,*locator):
return self.driver.find_element(*locator)
#点击
def left_click(self,*locator):
ActionChains(self.driver).click(self.dingwei_element(*locator)).perform()
#输入
def send_text(self,text,*locator):
self.driver.find_element(*locator).send_keys(text)
#清除
def clear_text(self,*locator):
self.driver.find_element(*locator).clear()
# 表单切换
def switch_iframe(self, *locator):
self.driver.switch_to.frame(self.driver.find_element(*locator))
# 窗口切换
def switch_window(self, n):
self.driver.switch_to.window(self.driver.window_handles[n])
# 用于断言
def get_attribuit_value(self, name, *locator):
return self.dingwei_element(*locator).get_attribute(name)
def get_title(self):
return self.driver.title
def get_current_url(self):
return self.driver.current_url
def get_element_text(self, *locator):
return self.driver.find_element(*locator).text
# 显示等待
def find_element_by_wait(self,driver,*locator):
element = WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(*locator))
return element
#滚动条
def gdt(self,*args):
dw = self.driver.find_element(*args)
self.driver.execute_script("arguments[0].scrollIntoView();", dw)
#弹框
def tankuang(self):
self.driver.switch_to.alert.accept()