如何查看 "Screenshot: available via screen"?
How do I view the "Screenshot: available via screen"?
我已经从 Python 开始通过 PhantomJS 进行 运行 Selenium 测试。每当测试引发异常时,我都会看到回溯,后面跟着神秘的短语
Screenshot: available via screen
如果能够查看此类屏幕截图就好了,但我不知道它们保存在哪里,也不知道 screen
打算使用什么程序(或其他)。
(我唯一熟悉的"screen"是the terminal multiplexer,就不给截图了)
所以 - "screen" 他们在说什么?如何使用它查看屏幕截图?
运行 try 块中的程序
当错误发生时使用 save_screenshot
截取屏幕截图
例如:
driver = webdriver.PhantomJS()
driver.set_window_size(1920,1080)
try:
driver.get('http://whatsmyuseragent.com/')
except Exception,e:
driver.save_screenshot('screenshot.png')
driver.close()
这会给你那一刻的截图
图片将在您的脚本运行时保存
So - what "screen" are they talking about?
我的异常是这样的:
File "/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: {"errorMessage":"Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: \"script-src 'self' connect.facebook.net cdn.ravenjs.com www.google-analytics.com banhang.shopee.vn chat.shopee.vn cdn.shopee.vn\".\n","request":{"objectName":"","statusCode":200,"headers":{"Cache":"no-cache","Content-Type":"application/json;charset=UTF-8"}}}
Screenshot: available via screen
看一下行:raise exception_class(message, screen, stacktrace)
,所以这里的screen
表示变量screen
:
>>> screen
u'iVBORw0KGgoAAAANSUhEUgAABVYAAAMACAYAAADPPjzCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElE ...'
我不知道如何快速显示屏幕截图,但是 screen
看起来像是可以保存到文件然后查看的图像数据。
我发现我可以使用以下(python3)获取异常返回的实际屏幕截图。
try:
...
except ElementNotVisibleException as e:
with open("imageToSave.png", "wb") as fh:
fh.write(base64.decodebytes(e.screen.encode()))
driver.save_screenshot() 函数创建新屏幕截图的时间晚于异常发生的时间。
我已经从 Python 开始通过 PhantomJS 进行 运行 Selenium 测试。每当测试引发异常时,我都会看到回溯,后面跟着神秘的短语
Screenshot: available via screen
如果能够查看此类屏幕截图就好了,但我不知道它们保存在哪里,也不知道 screen
打算使用什么程序(或其他)。
(我唯一熟悉的"screen"是the terminal multiplexer,就不给截图了)
所以 - "screen" 他们在说什么?如何使用它查看屏幕截图?
运行 try 块中的程序 当错误发生时使用 save_screenshot
截取屏幕截图例如:
driver = webdriver.PhantomJS()
driver.set_window_size(1920,1080)
try:
driver.get('http://whatsmyuseragent.com/')
except Exception,e:
driver.save_screenshot('screenshot.png')
driver.close()
这会给你那一刻的截图 图片将在您的脚本运行时保存
So - what "screen" are they talking about?
我的异常是这样的:
File "/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: {"errorMessage":"Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: \"script-src 'self' connect.facebook.net cdn.ravenjs.com www.google-analytics.com banhang.shopee.vn chat.shopee.vn cdn.shopee.vn\".\n","request":{"objectName":"","statusCode":200,"headers":{"Cache":"no-cache","Content-Type":"application/json;charset=UTF-8"}}}
Screenshot: available via screen
看一下行:raise exception_class(message, screen, stacktrace)
,所以这里的screen
表示变量screen
:
>>> screen
u'iVBORw0KGgoAAAANSUhEUgAABVYAAAMACAYAAADPPjzCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElE ...'
我不知道如何快速显示屏幕截图,但是 screen
看起来像是可以保存到文件然后查看的图像数据。
我发现我可以使用以下(python3)获取异常返回的实际屏幕截图。
try:
...
except ElementNotVisibleException as e:
with open("imageToSave.png", "wb") as fh:
fh.write(base64.decodebytes(e.screen.encode()))
driver.save_screenshot() 函数创建新屏幕截图的时间晚于异常发生的时间。