zoukankan      html  css  js  c++  java
  • selenium3 + python

    一、截图方法

    1.get_screenshot_as_file(self, filename)

    --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True。

    filename参数是保存文件的路径。
    Usage:
    driver.get_screenshot_as_file('/Screenshots/foo.png')

    2.get_screenshot_as_base64(self)

    --这个方法也是获取屏幕截图,保存的是base64的编码格式,在HTML界面输出截图的时候,会用到。

    比如,想把截图放到html测试报告里。
    Usage:
    driver.get_screenshot_as_base64()

    3.get_screenshot_as_png(self)
    --这个是获取屏幕截图,保存的是二进制数据,很少用到.
    Usage:
    driver.get_screenshot_as_png()

    二、异常后截图

    1.为了能抛异常,把定位登录按钮的id换了个错的id。

    2.给图片命名时候加个时间戳,避免同一个文件名称被覆盖掉。

    3.文件路径,这里直接写的文件名称,就是跟当前的脚本同一个路径。如果图片输出到其它文件路径,需要些文件的绝对路径了。

    4.截图的结果,如果没截到图返回False,截图成功会返回True。

    代码整理如下:

    from selenium import webdriver
    import unittest,time
    from selenium.webdriver.support import expected_conditions as EC

    class Login(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    cls.driver = webdriver.Chrome()
    cls.driver.get("https://passport.cnblogs.com/user/signin")

    @classmethod
    def tearDownClass(cls):
    cls.driver.quit()

    def test_01(self):
    '''前面输入账号密码,让正确运行到assert这一步,断言故意设置为False不成功'''
    try:
    self.driver.find_element_by_id("LoginName").send_keys("xxxx")
    self.driver.find_element_by_id("Password").send_keys("xxxx")
    self.driver.find_element_by_id("IsRemember").click()
    self.driver.find_element_by_id("submitBtn").click()
    time.sleep(3)
    #  判断登录成功页面是否有账号:"Teacher涛 - 博客园"
    locator = ("id","header_user_left")
    text = u"Teacher涛 - 博客园"
    result = EC.text_to_be_present_in_element(locator,text)(self.driver)
    self.assertFalse(result)

    except Exception as msg:
    print("异常原因%s"%msg)
    # 图片名称可以加个时间戳
    nowtime = time.strftime("%Y%m%d.%H.%M.%S")
    self.driver.get_screenshot_as_file("%s.jpg"%nowtime)
    raise

    if __name__ == '__main__':
    unittest.main(verbosity=2)

  • 相关阅读:
    Pycharm 2016 注册码
    在mac上搭建python环境
    Carthage 的使用
    生成唯一的随机字符串
    utf-8 转码--网址转码
    让自己的项目支持 Carthage
    系统自带的语音合成
    个性化 UIAlertController
    cocoaPods 创建自己的依赖库
    appleDoc 使用
  • 原文地址:https://www.cnblogs.com/Teachertao/p/10991893.html
Copyright © 2011-2022 走看看