代码之家  ›  专栏  ›  技术社区  ›  ZeroGraviti

如何在aws设备场中使用appium python截图运行?

  •  0
  • ZeroGraviti  · 技术社区  · 5 年前

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

    我该怎么做?

    短暂性脑缺血发作

    3 回复  |  直到 5 年前
        1
  •  0
  •   ZeroGraviti    5 年前

    缺少斜线( / )在文件名之前(即, screen1.png )第15行应如下-

    self.driver.save_screenshot(screenshot_folder + '/screen1.png')
    
        2
  •  0
  •   jmp    5 年前

    虽然我不确定如何将其写入设备场中的文件,但这里有截图端点的appium文档和一个python示例。

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

    它得到一个以64为基数的编码字符串,然后我们只需要将它保存在像appium屏幕截图dir这样的地方。否则,我们还可以将它保存在/tmp目录中,然后使用自定义工件特性导出它。

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

    詹姆斯