根据 APP自动化-异常截图-利用内存空间(list),这里还可以使用类的方法。
在Package目录下建立一个什么情况下可以操作内存空间.py的文件,里面建立一个类
class Comtext: # 类名可以随便定义 pass
然后在conftest1中设置引入类,然后使用python内置函数 setattr函数映射
import pytest from appium.webdriver import Remote # 导入远程包 from appium.webdriver.common.appiumby import AppiumBy as By # 引用appium的驱动常规AppiumBy 引入By模块,别名为BY from selenium.webdriver.support.wait import WebDriverWait # 引入Selenium的WebDriverWait服务 from selenium.webdriver.support import expected_conditions as EC # 引入Selenium的expected_conditions服务别名为ec from appium.webdriver.common.touch_action import TouchAction # 引入触摸事件方法导包为TouchAction @pytest.fixture() # pytest夹具使用,pytest中构建供用例使用的数据 def driver(): caps = {} caps["platformName"] = "Android" caps["appium:deviceName"] = "emulator-5554" caps["appium:platformVersion"] = "7.1.2" caps["appium:appPackage"] = "com.zhao.myreader" caps["appium:appActivity"] = "com.zhao.myreader.ui.home.MainActivity" caps["appium:notReset"] = "True" url = "127.0.0.1:4723/wd/hub" # global driver # 第一种,使用提升作用域完成 # from Package.什么情况下可以操作内存空间 import list1 # # driver1 = Remote(url, caps) # list1.append(driver1) from Package.什么情况下可以操作内存空间 import Comtext # 引入类 driver1 = Remote(url, caps) setattr(Comtext, "driver", driver1) # setattr是python的内置函数,可以向一个类,进行外部的内容定义和设置,python的反射机制# 设置Comtext这个类,的属性是"driver",值是driver1
wait = WebDriverWait(driver1, 2) return driver1, wait @pytest.fixture() # pytest夹具使用,pytest中构建供用例使用的数据 def by(): return By # 这里的By是上面引入的AppiumBy包,为了避免循环递归,函数改为小写by @pytest.fixture() # pytest夹具使用,pytest中构建供用例使用的数据 def ec(): return EC # 这里的By是上面引入的expected_conditions AS EC包,为了避免循环递归,函数改为小写by
然后去conftest-2中去引入类
import pytest # 以下是pytest提供异常截图的方法 @pytest.hookimpl(hookwrapper=True) # 写死的 def pytest_runtest_makereport(item, call): # 写死的 # pytest会将找到的用例存在迭代器中 outcome = yield # 通过这个方法接受所有用例的结果 result = outcome.get_result() # print("用例的标识数据:", result) if result.when == "call": print("用例的执行结果:", result) if result.outcome == "failed": """进行截图""" # from Package.什么情况下可以操作内存空间 import list1 # driver1 = list1[-1] from Package.什么情况下可以操作内存空间 import Comtext driver1 = getattr(Comtext, "driver") # 去类中拿属性 driver1.save_screenshot("异常截图11.png") #
然后运行,运行完进行异常截图
标签:appium,driver1,APP,内存空间,caps,pytest,import,class From: https://www.cnblogs.com/gezirui/p/17406585.html