我使用 java selenium 创建了一个自动化程序。我使用了 TestNG 框架。我想记录在脚本执行期间执行的屏幕的(视频),因此最好跟踪失败/通过的场景并查看执行过程。
任何人都可以帮我解决这个问题,如何在运行自动化套件执行期间记录屏幕。
我在下面使用此代码但生成的图像已损坏.我想可能是因为渲染选项.有人知道发生了什么吗?
package webpageprinter;
import java.net.URL;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import javax.swing.text.html.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class WebPagePrinter {
private BufferedImage image = null;
public BufferedImage Download(String webpageurl) {
try
{
URL url = new URL(webpageurl);
final JEditorPane jep = new JEditorPane();
jep.setContentType("text/html");
((HTMLDocument)jep.getDocument()).setBase(url);
jep.setEditable(false);
jep.setBounds(0,0,1024,768);
jep.addPropertyChangeListener("page",new
PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
try
{
image = new
BufferedImage(1024,768,BufferedImage.TYPE_INT_RGB );
Graphics g = image.getGraphics();
Graphics2D graphics = (Graphics2D) g;
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
jep.paint(graphics); …Run Code Online (Sandbox Code Playgroud) 有什么方法可以通过teardown(@After)方法获得测试结果?我想根据结果在测试后进行清理。
@After在junit文档中找不到太多详细信息。
PyTest没有运行任何测试,也不清楚为什么.我试图使用--debug但没有得到任何有价值的信息.目前尚不清楚如何使用pytest调试此类问题(看起来像PyTest配置/ env变量/测试名称模式有些问题?)
测试文件示例:
$ cat test_sanity.py
import pytest
@pytest.mark.sanity
def test_me():
""" I'm a test. """
assert True
Run Code Online (Sandbox Code Playgroud)
但是PyTest没有运行任何测试:
$ pytest
================================================== test session starts ===================================================
platform linux2 -- Python 2.7.12, pytest-3.1.3, py-1.4.34, pluggy-0.4.0
rootdir: /home/qawizard/pytest-hell, inifile:
plugins: xdist-1.15.0, timeout-1.2.0
collected 1 item s
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Exit: Done! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
============================================== no tests ran in 0.13 seconds ==============================================
Run Code Online (Sandbox Code Playgroud)
为什么这样?
我尝试在 Windows 7 上使用以下代码捕获屏幕
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageIO.write(capture, "jpg", new File("C:/capture/ScreenShot.jpg"));
Run Code Online (Sandbox Code Playgroud)
这段代码返回黑色图像,不知道为什么请帮忙。
进口情况如下:
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
Run Code Online (Sandbox Code Playgroud)
先感谢您。
我想使用Selenium webdriver 和 Python制作网页的屏幕截图并将其保存在自定义位置。我尝试使用 Firefox 和 Chrome 将屏幕截图保存到自定义位置,但它始终将屏幕截图保存在项目目录中。这是我的 Firefox 版本:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.dir",
'C:\\Users\\User\\WebstormProjects')
binary = FirefoxBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe")
def foxScreen():
driver = webdriver.Firefox(firefox_binary=binary,
firefox_profile=profile)
driver.get("http://google.com")
driver.save_screenshot("foxScreen.png")
driver.quit()
if __name__ == '__main__':
foxScreen()
Run Code Online (Sandbox Code Playgroud)
这是我的 Chrome 版本:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"download.default_directory": r'C:\\Users\\User\\WebstormProjects',
"directory_upgrade": True}
options.add_experimental_option("prefs", prefs)
chromedriver =
"C:\\Users\\User\\Downloads\\chromedriver_win32\\chromedriver.exe"
def chromeScreen():
driver = webdriver.Chrome(chrome_options=options,
executable_path=chromedriver)
driver.get("http://google.com")
driver.save_screenshot("chromeScreen.png")
driver.quit()
if __name__ …Run Code Online (Sandbox Code Playgroud) python selenium webdriver selenium-chromedriver selenium-webdriver
我正在尝试使用 selenium 和 chromedriver 获取全页屏幕截图,但我得到的是半屏幕截图。我尝试过其他方法,但到目前为止只有这个有效,而且只需要半页屏幕截图。
任何人都可以使用另一个技巧来解决这个问题,也可以附加输出结果。
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.headless = True
driver = webdriver.Chrome(options=options)
URL = "http://stevens.ekkel.ai"
driver.get(URL)
S = lambda X: driver.execute_script('return document.body.parentNode.scroll'+X)
driver.set_window_size(S('Width'),S('Height')) # May need manual adjustment
driver.find_element_by_tag_name('body').screenshot('web_screenshot.png')
driver.quit()
Run Code Online (Sandbox Code Playgroud) python selenium python-3.x selenium-chromedriver selenium-webdriver
我尝试了以下代码来获取整页屏幕截图。但只有可见区域被捕获,
public void Fullscreen (WebDriver driver)
{
try {
final Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
final BufferedImage image = screenshot.getImage();
ImageIO.write(image, "PNG", new File("D:\\" + "AShot_BBC_Entire.png"));
} catch(Exception e){
System.out.println(e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用远程连接到网格机器来运行硒测试.有错误时,很难分析错误.如果我们在发生错误时有一些图片会更好.
正如其他地方所述(使用Selenium WebDriver截取屏幕截图),您可以使用Selenium Webdriver类PHPUnit_Extensions_Selenium2TestCase轻松地使用PHPUnit截取屏幕截图.
但是,我找不到设置生成的屏幕截图的屏幕大小的方法.默认情况下,它们的宽度似乎限制为1000像素.
BTW:上面提到的Stackoverflow线程已关闭.所以我不能在那里发表我的问题.
在使用 selenium 和 C# 在 Visual Studio 2015 中截取屏幕截图时,我需要一些帮助。运行下面的代码时我不断收到错误消息。
Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
ss.SaveAsFile(@"C:\Temp\Download\Image.png",
ScreenshotImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息是“System.Runtime.InteropServices.ExternalExcepton:GDI+ 中发生一般错误”
如果目前有人能够截取屏幕截图,请告诉我您是否采取了不同的做法。
我正在尝试使用Firefox geckodriver 和aShot Library水平和垂直拍摄完整的页面截图。
然而,结果并不如预期。看一看:
driver.get("https://google.com");
Screenshot fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
ImageIO.write(fpScreenshot.getImage(),"JPEG",new File("FullPageScreenshot.jpg"));
Run Code Online (Sandbox Code Playgroud)
研究了很多变体,但没有任何效果。有趣的是,当我尝试使用旧的 Firefox 版本 (46) 时,我可以在没有任何第三方库的情况下截取完整的屏幕截图。我正在尝试使用最新的 Firefox 并具有完整的屏幕截图功能。
有什么帮助吗?