一、Selenium IDE脚本
一、在火狐上安装我们的Selenium IDE脚本录制插件
二、打开Selenium IDE
三、启动脚本录制
四、在浏览器上操作我们想要录制的脚本
五、录制完成之后导出我们的脚本以结束.py的文件
导出完成
注意跳转的时候要加上句柄
二、PO模型
一、PO的核心要素
1.在PO模式中抽离封装集成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性
2.每一个page都继承BasePage,通过driver来管理本page中元素,将page中的操作封装成一个个方法
3.TestCase继承unittest.Testcase类,并依赖page类,从而实现相应的测试步骤
二、PageObject设计模式
三、组织代码
BasePage代码实现
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #鼠标操作
class BasePage():
‘’‘BasePage封装所有界面都公用的方法。例如driver,find_element等’’’
‘’‘实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数’’’
def init(self,driver,url):
self.driver = driver
self.base_url = url
# 进入网址
def get(self):
self.driver.get(self.base_url)
#元素定位,替代八大定位
def get_element(self,*locator):
return self.driver.find_element(*locator)
#点击
def left_click(self,*locator):
ActionChains(self.driver).click(self.get_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])
实现SearchPage
‘’’
实现步骤:(1)继承basepage,(2)元素传参,(3)调取方法
‘’’
from selenium.webdriver.common.by import By
from pomodel.Base.base_page import BasePage
class Search(BasePage):
def init(self,driver,url):
BasePage.init(self,driver,url)
#进入百度
def open_baidu(self):
self.get()
#输入搜索内容
def input_search_content(self,text):
self.send_text(text,By.ID,“kw”)
#点击按钮
def click_baidu_search(self):
self.left_click(By.ID,“su”)
实现TestCase
import unittest
from selenium import webdriver
from pomodel.Pages.search_pages import Search
class BaiBu(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(10)
def test_serach(self):
url=“http://www.baidu.com”
s = Search(self.driver,url)
s.open_baidu()
s.input_search_content(“jack”)
s.click_baidu_search()
def tearDown(self) -> None:
self.driver.quit()
if name == ‘main’:
unittest.main()
执行
进入百度,输入hao123,跳转hao123页面,打开百度地图