抽取基本的操作
1. 抽取基本操作原因
我们多次使用app后发现,我们经常的操作是点击、输入内容操作,所以我们也可以把这样的操作进一步抽取.
2. 抽取后的目录
- base
- - __init__.py
- - base_action.py
- - base_driver.py
- page
- - sms_page.py
- script
- - test_sms_send.py
- pytest.ini
3. 代码
在base_action.py中增加基本操作
class BaseAction:
def __init__(self, driver):
self.driver = driver
def click_element(self, loc):
"""点击的基本操作"""
self.find_element(loc).click()
def input_element_content(self, loc, content):
"""输入框的基本操作"""
self.find_element(loc).clear()
self.find_element(loc).send_keys(content)
def find_element(self, loc):
"""抽取查找元素的基本动作"""
self.driver.implicitly_wait(10)
return self.driver.find_element(loc[0], loc[1])
修改sms_page.py 代码
import os
import sys
sys.path.append(os.getcwd())
import base
from base.base_action import BaseAction
class SmsPage(BaseAction):
def __init__(self, driver):
# self.driver = driver
# 调用父类的初始化方法
BaseAction.__init__(self, driver)
def click_add_sms(self):
# 2. 定位到新增
self.click_element(base.sms_add)
def input_phone_number(self):
'''定位接受者,填写手机号'''
# 3.定位接收者元素
self.input_element_content(base.sms_receiver_phone_number, "17611111111")
def send_sms(self):
'''发送短信内容'''
send_list = [11, 'aaa', 'bbbb']
# 5.定位到发送元素
send_sms = self.find_element(base.sms_sender_edit_content)
# 定位发送按钮
send_btn = self.find_element(base.sms_sender_button)
# 6.遍历发送的信息
for i in send_list:
send_sms.clear()
send_sms.send_keys(i)
send_btn.click()
4. 抽取手机号和发送的短信内容
由于每个人发送短信的手机好吗和短信内容也不一样,所以我们把手机号和短信也作为常量,便于修改
修改base/init.py
"""
2. 测试发送短信功能
"""
# 接收的手机号
phone_number = "17612345678"
# 短信内容
messages = [11, 'aaa', 'bbbb']
修改sms_page.py
import os
import sys
sys.path.append(os.getcwd())
import base
from base.base_action import BaseAction
class SmsPage(BaseAction):
...
def input_phone_number(self):
'''定位接受者,填写手机号'''
# 3.定位接收者元素
self.input_element_content(base.sms_receiver_phone_number, base.phone_number)
def send_sms(self):
'''发送短信内容'''
# 短信发送的内容
send_messages = base.messages
# 5.定位到发送元素
send_sms = self.find_element(base.sms_sender_edit_content)
# 定位发送按钮
send_btn = self.find_element(base.sms_sender_button)
# 6.遍历发送的信息
for i in send_messages:
send_sms.clear()
send_sms.send_keys(i)
send_btn.click()
总结
到此为止我们已经把发送短信的所有功能全部抽取完成,经过抽取我们发现我们的代码文件越来越多,但是维护起来更加容易,也容易扩展,代码的复用率提高了很多.