如何使用 appium python 在 AWS Device farm 中为 运行 截屏?

How to take screenshots in AWS Device farm for a run using appium python?

即使在 DeviceFarm 中成功执行了我的测试,我也得到了一个空的屏幕截图报告。我的代码保持简单如下 -

from appium import webdriver
import time
import unittest

import os

class MyAndroidTest(unittest.TestCase):
    def setUp(self):
        caps = {}
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
    def test1(self):
        self.driver.get('http://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html')
        time.sleep(5)
        screenshot_folder = os.getenv('SCREENSHOT_PATH', '/tmp')
        self.driver.save_screenshot(screenshot_folder + 'screen1.png')
        time.sleep(5)

def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
        suite = unittest.TestLoader().loadTestsFromTestCase(MyAndroidTest)
        unittest.TextTestRunner(verbosity=2).run(suite)

我在单个设备池上进行了测试 -

我怎样才能完成这项工作?

TIA。

文件名(即 screen1.png)前缺少斜线(/)。第 15 行应如下所示 -

self.driver.save_screenshot(screenshot_folder + '/screen1.png')

虽然我不确定如何将其写入 Device Farm 中的文件,但这里是屏幕截图端点的 appium 文档和一个 python 示例。

https://github.com/appium/appium/blob/master/docs/en/commands/session/screenshot.md

它得到一个 base 64 编码的字符串,然后我们只需要将它保存在某个地方,比如提到的其他答案的 appium 截图目录。否则我们也可以将其保存在 /tmp 目录中,然后使用自定义工件功能将其导出。

如果 link 有帮助,请告诉我。

詹姆斯