报错如图
代码文件1-yaml
‘’’
data:
- appium
- selenium
- requests
#等价于{“keyword”:[“appium”,“selenium”,“request”]}
steps: - webdriver:
browser: chrome - get: https://ceshiren.com/
- find_element:
- id
- search-button
- click:
- find_element:
- id
- search-term
- send_keys: ${data}
‘’’
代码文件2:
‘’’
from selenium import webdriver
import pytest
import yaml
from selenium.webdriver.common.by import By
def load_data(path):
#打开文件
with open(path,encoding=‘utf-8’) as f:
#(添加的是文件)
return yaml.safe_load(f)
class TestDemo:
#改在数据,
@pytest.mark.parametrize(“data”,load_data(“test_data.yaml”)[“data”])
def test_search(self, data):
#改造测试步骤,遍历test_steps.yaml中的所有values
for step in load_data(‘test_data.yaml’)[“steps”]:
print(step)
if “webdriver” in step:
#step.get(“webdriver”).get(“browser”,“chrome”),取webdriver值,{‘browser’: ‘chrome’},
#下一个get是取browser的值,然后如果没有这取chrome
#又因为这个要被公共使用
#if step.get(“webdriver”).get(“browser”,“chrome”)
#browser区分下大小写,然后做判断
browser=str(step.get(“webdriver”).get(“browser”,“chrome”)).lower()
#判断,browser区分下大消息,如果browser是chrome,
if browser==“chrome”:
driver=webdriver.Chrome()
elif browser==“firefox”:
driver=webdriver.Firefox()
else:
print(“没有驱动的浏览器”)
if “get” in step:
#取出来url
url=step.get(“get”)
driver.get(url)
if “find_element” in step:
by=step.get(“find_element”)[0]
locator=step.get("find_element")[1]
current_element=driver.find_element(by, locator)
if "click " in step:
current_element.click()
if "send_keys" in step:
value=str(step.get("send_keys"))
value=value.replace("${data}",data)
current_element.send_keys(value)
‘’’
由于权限问题没法上传代码包,麻烦老师看看