如何在AWS Device Farm中获取屏幕截图以使用appium python运行?

时间:2019-02-12 04:14:40

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

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

我在单个设备池上进行了测试- AWS DeviceFarm run dashboard

Empty screenshots section

我该如何进行这项工作?

TIA。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尽管我不确定如何将其写入设备场中的文件,但这里是截屏端点的appium文档和python示例。

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

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

让我知道该链接是否有帮助。

詹姆斯