Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开excel并使用python selenium截图_Python_Google Chrome_Selenium - Fatal编程技术网

打开excel并使用python selenium截图

打开excel并使用python selenium截图,python,google-chrome,selenium,Python,Google Chrome,Selenium,我正在使用selenium和python自动化一些浏览器测试。脚本通过chrome浏览器打开应用程序,输入用户名和密码,并通过web浏览器应用程序进行遍历。我正在对遍历时看到的每个页面进行截图。但是,我被困在一个地方。单击时,应用程序会在一个地方下载excel文件。excel会在下载文件夹中下载。我现在的要求是打开excel文件并excel文件的屏幕截图,然后再次返回web浏览器并继续浏览。您使用的是哪个平台?您可以尝试使用python打开文件,然后使用此模块执行屏幕抓取: 由于您不会在浏览器中

我正在使用selenium和python自动化一些浏览器测试。脚本通过chrome浏览器打开应用程序,输入用户名和密码,并通过web浏览器应用程序进行遍历。我正在对遍历时看到的每个页面进行截图。但是,我被困在一个地方。单击时,应用程序会在一个地方下载excel文件。excel会在下载文件夹中下载。我现在的要求是打开excel文件并excel文件的屏幕截图,然后再次返回web浏览器并继续浏览。

您使用的是哪个平台?您可以尝试使用python打开文件,然后使用此模块执行屏幕抓取:

由于您不会在浏览器中打开excel工作表,我认为这不是selenium的任务。

@Rahul Mukerjee

So the solution in my view can be:

1.You know in which location the file gets downloaded.So you can hard code the location of file in your script.If the name of excel is same everytime it is downloaded then it is good,otherwise you need to capture the name of file and store it.
2.You can continue on running your tests after downloading the file.
3.Now you can take the screen shot of the downloaded file once you are finished traversing all the pages.

Hope this helps.
打开excel文件后,使用以下代码拍摄屏幕截图:

import win32gui, win32ui, win32con, win32api
hwin = win32gui.GetDesktopWindow()
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwindc = win32gui.GetWindowDC(hwin)
srcdc = win32ui.CreateDCFromHandle(hwindc)
memdc = srcdc.CreateCompatibleDC()
bitmap = win32ui.CreateBitmap()
bitmap.CreateCompatibleBitmap(srcdc, width, height)
memdc.SelectObject(bitmap)
memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
bitmap.SaveBitmapFile(memdc, 'C:\\screenshot.bmp')
“C:\screenshot.bmp”:它是您要保存屏幕抓图的位置。 只有windows兼容


从stackoverflow.com上的解决方案中获取的

那么?你为此做了什么?向我们展示您所做的工作,以及您面临的问题?正如其他人所指出的,Selenium使您能够仅与浏览器交互。您需要使用另一个工具与测试中的系统交互,以获取excel的屏幕截图,我看到下面的一些答案可能会有所帮助。你可以考虑讨论考试的要求。他们想知道Excel已经启动并打开了正确的文件吗?如果需要验证excel文件的内容,您可以使用Python直接与该文件交互,而无需检查文件是否打开或抓取屏幕截图。请参阅:SO的期望是,用户提出问题时,不仅要研究如何回答自己的问题,而且要共享该研究、代码尝试,和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!请参阅:这与[Sele]或[谷歌浏览器]标签无关,请删除那些标签并添加与您的问题相关的其他标签。您可以考虑添加一些代码块来支持您的逐字吗?谢谢大家。我正在使用windows 10。@Rakesh。我需要打开文件并截图。我可以用os.startfile('C:\\Users\\Rahul Mukherjee\\Downloads\\file.xls')打开文件,但如何截图并保存其输出?当然@拉胡尔:你能分享你正在使用的网站吗?你可以用命令os.startfile('C:\\Users\\Rahul Mukherjee\\Downloads\\file.xls')打开一个文件,现在我可以看到它打开了。如何将它的截图保存到文件中。我不是在浏览器中打开的,所以驱动程序。保存截图('people\u link\n j\u 7.png'))他不工作了,拜托help@Rakesh我无法共享网站,因为这是我所在组织的内部网站,不会从外部打开。我的问题是如何拍摄已打开文件的屏幕截图。“您可以使用命令os.startfile('C:\\Users\\Rahul Mukherjee\\Downloads\\file.xls'打开文件)现在我可以看到它已打开。如何获取其屏幕截图并保存到文件中。我没有在浏览器中打开,因此driver.save_屏幕截图('people_link_NJ_7.png')不起作用。请帮助“我正在使用windows 10”