问题标签 [takesscreenshot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
47 回答
600608 浏览

selenium - 如何使用 Selenium WebDriver 截屏?

是否可以使用 Selenium WebDriver 截屏?

(注意:不是Selenium 遥控器

0 投票
3 回答
5321 浏览

java - getScreenshotAs 方法在哪里定义?

我正在浏览 selenium 中的屏幕截图代码。下面是它的代码:

在上一行中, TakesScreenshot 是一个接口,而 getScreenshotAs 是一个方法。所以我从中了解到的是,我们正在将驱动程序类型转换为 TakesScreenshot 接口,这本质上意味着我们的驱动程序从现在开始将表现得像 TakesScreenshot,之后将执行 getScreenshotAs 方法。

我的问题是接口只能有抽象方法。那么,getScreenshotAs 方法是如何通过 TakesScreenshot 接口执行的,因为它没有该方法的任何定义。更准确地说,getScreenshotAs 方法在哪里定义,上面的代码行是如何工作的?


添加更多细节:

TakesScreenshot --> 一个界面

driver --> ChromeDriver 类的实例 (WebDriver driver = new ChromeDriver())

getScreenshotAs --> TakesScreenshot 接口中的方法。

上面的代码用于截取 selenium 中的网页截图。

0 投票
2 回答
1699 浏览

java - Casting Object to an interface and accessing the interface methods implemented elsewhere

We use the following code to take screenshots in selenium.

#xA;

Here is what I understood:

  • TakesScreenshot is an interface that provides a method getScreenshotAs() to get screenshots.
  • But WebDriver doesn't extend this interface.
  • FirexfoxDriver class also doesn't implement this interface
  • The getScreenshotAs() method is implemented in a separate class RemoteWebDriver which implements TakesScreenshot.

Here we are casting the driver object to another interface TakesScreenshot and we are using it's method getScreenshotAs() which is implemented in a completely different class.

So if we want to use an interface methods which were implemented in some classes can we use them by casting our object (which was created from a class implementing to another interface) to that interface?

Also, if we create the driver like

#xA;

We can't cast the Interface to the driver here. We have to use it like TakesScreenshot ts = drvier and then we can use the method getScreenshotAs(). Here also not sure what exactly happening?

Can someone explain please?

Thank you.

0 投票
0 回答
63 浏览

animation - 硬件加速显示黑色截图

当硬件加速开启时内部发生的事情然后在此期间拍摄的所有屏幕截图都是全黑的。我对此一无所知,并做了一些研究,但找不到任何东西。
我正在尝试在 Windows 中创建一个应用程序“X”,当有人在“X”打开时尝试截屏时,它将产生黑屏作为输出。
有一些应用程序提供此功能(如 ScreenWings),但我无法弄清楚它的工作原理。
硬件加速是否与此相关,如果是,那么如何使用,如果不是,那么我可以使用什么。
请帮忙!!!

编辑——我想做点什么,这样屏幕截图就变成黑色了..

0 投票
3 回答
6181 浏览

python-2.7 - 如何在python中截取屏幕截图?

我有一个想法并想实施它。但我不确定它是否会起作用。所以,想得到你的意见。

比如说,当我打开一个网站时www.espncricinfo.com,我想对该页面进行截图并保存在本地。此保存的图像可以稍后转换GIF。这可以通过 来实现python吗?有什么建议/意见吗?

更新

并且是否可以在无头浏览器中捕获屏幕截图?

是否有可能在headless mode(非 GUI)中启动浏览器,然后截取网页特定区域的屏幕截图?

0 投票
1 回答
192 浏览

javascript - python,selenium的选择性屏幕捕获代码

需要特定屏幕截图的帮助以获取图形屏幕截图(通过 java 脚本创建后端)。

我知道我们可以通过 id 获取元素,但我遇到了新的麻烦。

通过保存全屏并裁剪它尝试了其他方式,但裁剪功能仍然出错

“TypeError:crop() 采用 1 到 2 个位置参数,但给出了 5 个”

但我可以在网上看到可以传递四个参数的代码

我的代码

如果有人可以通过 id 函数帮助 findelement 也将有所帮助。

真的需要帮助,伙计们。干杯

0 投票
1 回答
63 浏览

parallel-processing - 移动自动化 - Testng 非静态驱动程序 - TakeScreenshot 方法使用并行线程引发 NPE 错误

在为我的测试套件中的失败步骤截屏时,我遇到了空指针异常。我确实在谷歌上寻找解决方案,但对我来说还没有任何效果。欣赏是否有人可以请建议。

我有 2 个 android 测试类和 2 个 iOS 测试类。android 和 iOS 都有自己的基础程序来初始化 android/iOS 驱动程序(声明为非静态)。测试类正在调用基础程序来初始化驱动程序(如 this.driver = .initiaze())以并行运行所有 4 个测试类。

我有 2 个单独的侦听器(在失败时截屏),一个用于 android,一个用于 iOS。当任何测试失败时,侦听器程序调用(android 侦听器调用 android base 和 ios 调用 ios base 程序)base 程序 getscreenshot 方法,然后失败并出现 NPE 错误。

以下是参考的一些代码示例。

(注意 - 如果我在基本程序中将驱动程序定义为公共静态,则 NPE 错误消失但并行运行失败并出现随机错误,因为一个类的驱动程序被另一类使用)

Android 基础:(iOS 基础的类似代码,返回类型为 IOSDriver)

g_MobileBase.java:

Android 测试类#1:

Android 监听器:(类似 iOS 监听器,只创建 ios 基础程序的对象)

0 投票
2 回答
12070 浏览

python - 如何使用python单击网络浏览器按钮?

我是 Python 新手,目前我正在开发一个程序来捕获整页屏幕并将其通过电子邮件发送给特定的人。我已经很好地完成了电子邮件部分。但是我发现很难找到使用 Python 脚本在 Google Chrome 中单击“全页屏幕捕获”按钮的 Python 脚本。我可以知道有什么办法吗?我必须通过单击“整页屏幕捕获”按钮来截取屏幕截图。如果有人可以帮助我,那将是一个很大的帮助。提前致谢!

注意:请注意,我不想截屏!屏幕截图仅获取该特定屏幕上可用的内容。“全页屏幕捕获”按钮有助于捕获整个网页,即使它在屏幕上不可见。我可以有一个脚本来帮助我点击 Chrome 中的那个按钮吗?

我搜索了单击 Web 浏览器按钮的脚本。不幸的是,我只能找到有助于单击网页按钮的脚本。

0 投票
1 回答
255 浏览

selenium-webdriver - 在 Selenium 中截屏时 System.getProperty() 有什么用?

我正在运行一个程序,用于使用硒自动在范围报告中添加屏幕截图。程序运行完美,但我想知道下面程序中 System.getProperty 行的含义。

0 投票
1 回答
432 浏览

java - 如何截取在 selenium 中失败的 webelement(部分屏幕而不是整个页面)的屏幕截图

如何截取在 selenium 中失败的 webelement(部分屏幕而不是整个页面)的屏幕截图。我尝试使用 Point 来定位 webelement 的位置并 5aken 它工作的屏幕截图,但这是硬编码的,我想要一个运行时解决方案。例如,我的网页有 3 个字段 2 个文本框和 1 个按钮,由于第二个文本框,我想仅在运行时截取第二个文本框的屏幕截图,因此测试失败(任何失败,如找不到元素或元素被禁用)。请帮忙