【问题标题】:How to take screenshots in AWS Device farm for a run using appium python?如何在 AWS 设备场中截取屏幕截图以使用 appium python 运行?
【发布时间】:2019-02-12 04:14:39
【问题描述】:

即使在 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。

【问题讨论】:

    标签: appium-android aws-device-farm python-appium


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      如果该链接有帮助,请告诉我。

      詹姆斯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 2011-08-16
        • 1970-01-01
        • 2010-11-14
        相关资源
        最近更新 更多