测试人社区

求助:打造自己框架直播课1,按照老师的思路去练习代码,跟老师一样但是出现了报错

报错如图


代码文件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)

‘’’
由于权限问题没法上传代码包,麻烦老师看看

此问题已解决,不用老师帮忙看了

原因:此处多了空格,导致元素找到,但没有点击