Search code examples
appium-androidaws-device-farmpython-appium

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


Even after a successful execution of my tests in DeviceFarm, I get an empty screenshots report. I have kept my code as simple as below -

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)

I tested on a single device pool - AWS DeviceFarm run dashboard

Empty screenshots section

How can I make this work ?

TIA.


Solution

  • Missing a slash (/) before the filename (i.e., screen1.png). Line 15 should be as below -

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