
from selenium import webdriver
from common import get_case_id
from common.mongo import Mongo
class Logic(object):
""" 每一个方法名对应前端的操作的元素,方便反射 """
def __init__(self):
self.mongo = Mongo()
def browser(self, params):
""" 打开网页 """
url = params.get('value', None)
self.driver.get(url)
def find(self, params):
""" 查找元素 接收选择器和元素内容"""
selector = params.get('selector', None)
value = params.get('value', None)
return self.driver.find_element(selector, value)
def send(self, element, params):
""" 输入内容 """
text = params.get('value', "默认值")
element.send_keys(text)
def click(self, element, params):
""" 点击操作 """
element.click()
def close(self):
""" 关闭浏览器 """
self.driver.quit()
def execute(self, data):
""" 执行测试,把前端传过来的指令映射为selenium的操作方法 """
# 防止每次调logic都初始化driver,这里放到执行时才初始化driver
self.driver = webdriver.Chrome()
# 取data的commands(所有的元素和操作的dict)
'''
{'casename': 'zz',
'commands':
[
{'command': 'browser', 'parameter': {'value': 'http://127.0.0.1:8000/automation/create'}},
{'command': 'find', 'parameter': {'selector': 'xpath', 'value': '//*[@>
from flask import Flask
from interface import interface
from automation import automation
app = Flask(__name__)
app.register_blueprint(interface)
app.register_blueprint(automation)
if __name__ == '__main__':
app.run(
host="0.0.0.0",
port=8000,
debug=True,
)