【问题标题】:Selenium C# How to FindElement of image?Selenium C#如何查找图像的元素?
【发布时间】:2019-12-29 15:51:02
【问题描述】:

我正在做一个项目,该项目会截取产品图片的屏幕截图。 然后裁剪并保存此图像。

这里是代码

                    Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();

                    using (var ms = new MemoryStream(screenshot.AsByteArray))
                    using (var imgShot = Image.FromStream(ms))
                    using (var src = new Bitmap(imgShot))
                    {
                        IWebElement element = driver.FindElement(By.Name("viewport"));
                        Rectangle cropRect = new Rectangle(element.Location.X, element.Location.Y, element.Size.Width, element.Size.Height);

                        var clone = src.Clone(cropRect, src.PixelFormat);
                        clone.Save(_SavePath);
                    }

参考下面的图片链接,我将如何使用 C# Selenium driver.FindElement 来选择此图片: 这就是我正在尝试使用的: IWebElement element = driver.FindElement(By.Name("viewport"));

图片: http://dealer.rectron.co.za/ImageServer.aspx?QualifyingProductID=c471d4fd-fd97-48b8-a709-441b18c1830c

这是图像的 HTML 代码:

<html><head><meta name="viewport" content="width=device-width, minimum-scale=0.1"><title>ImageServer.aspx (335×328)</title></head><body style="margin: 0px; background: #0e0e0e;"><img style="-webkit-user-select: none;margin: auto;" src="http://dealer.rectron.co.za/ImageServer.aspx?QualifyingProductID=c471d4fd-fd97-48b8-a709-441b18c1830c"></body></html>

当我尝试裁剪图像时,出现以下异常:

System.ArgumentException: 'Rectangle '{X=0,Y=0,Width=0,Height=0}' 的宽度或高度不能等于 0。'

我认为他们使用 FindElement 的方式可能不正确。 谢谢

【问题讨论】:

    标签: c# selenium findelement


    【解决方案1】:

    您的定位器不正确,您正在创建一个没有出现在页面上且没有尺寸的&lt;meta&gt; 元素。您需要按如下方式修复定位器:IWebElement element = driver.FindElement(By.XPath("//img"));

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多