1) waiForPageToLoad() 并不能证明你拥有页面上的所有元素。最好使用 waitForElementPresent,或者检查 isElementPresent 以了解该元素是否在页面上。
2)你没有提到你在 RC 中使用什么语言。
如果 java - 你可以使用
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
...
public void captureScreen(String fileName) throws Exception {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(fileName));
}
如果 C#:
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;
using System.Drawing;
using System.Drawing.Imaging;
namespace SeleniumTests
{
[TestFixture]
public class ImageCapture
{
private ISelenium selenium;
private StringBuilder verificationErrors;
public static string CaptureScreenshot()
{
Bitmap bmpScreenshot = new Bitmap(1024, 768, PixelFormat.Format32bppArgb);
Graphics Screenshot = Graphics.FromImage(bmpScreenshot);
Screenshot.CopyFromScreen(0, 0, 0, 0, new Size(1024, 768));
string name = (System.Convert.ToString(System.DateTime.Now).Replace("/", "_")).Replace(":", "_") + ".jpg";
bmpScreenshot.Save(name, ImageFormat.Jpeg);
return name;
}
3) 如果您使用 java 开发 - 考虑使用 Sikuli。它是一个处理屏幕上图像的工具(您可以用作 java 库)。您可以结合 Selenium 和 Sikuli 来获得出色的灵活性和功能。