首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式获取网页中图像的呈现维度?

如何以编程方式获取网页中图像的呈现维度?
EN

Stack Overflow用户
提问于 2016-01-07 03:38:38
回答 1查看 729关注 0票数 1

我需要询问网页中的每个img标记,并在呈现的形式中找到它的高度和宽度。而不是实际的物理图像尺寸。我需要在C#中在WinForm应用程序中这样做。

示例:http://motherboard.vice.com/read/i-built-a-botnet-that-could-destroy-spotify-with-fake-listens

主要图像的物理尺寸为3648x2736。当我的浏览器最大化时,呈现的图像是1000x750。我知道媒体查询和图像调整是由于他们。这个img标签没有宽度和高度属性。如何让我的应用程序获得1000x750大小使用C#,并假设最大的媒体查询大小和分辨率至少1400宽度。

我假设我需要一个浏览器控件,如乌索溴铵CefSharpEO.Browser或IE控件?不知道哪一个能做到。我想遍历img标记,并获得每个呈现的img标记的尺寸,就好像我打开了一个浏览器并使用dev工具来获取每个图像的计算维度一样。比起Javascript,我更喜欢在C#中进行这种处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-07 04:20:07

我一直在用硒WebDriver测试,我认为这是目前最好的选择

我做了一个小测试,它就像预期的一样工作,下面是测试代码

代码语言:javascript
运行
复制
[TestFixture]
public class TestClass
{
    private FirefoxDriver _driver;

    [SetUp]
    public void Setup()
    {
        _driver = new FirefoxDriver();
        _driver.Url = "http://motherboard.vice.com/read/i-built-a-botnet-that-could-destroy-spotify-with-fake-listens";
    }

    [TearDown]
    public void TearDown()
    {
        _driver.Quit();
    }

    [TestCase()]
    public void TestImage()
    {
        IWebElement element = _driver.FindElementByXPath("//img[@class = 'vmp-image' and position() = 1]");

        Assert.IsNotNull(element);

        string width = element.GetCssValue("width");
        string height = element.GetCssValue("height");

        Console.WriteLine("width:  " + width);
        Console.WriteLine("height: " + height);
    }
}

在这个测试中,Selenium WebDriver打开火狐,您可以看到站点加载,加载后您可以访问站点的DOM,甚至可以执行Javascript代码、通过XPath、Css、ClassName、TagName等查找元素.

还请记住,这是一个浏览器,您应该最大化或给窗口的浏览器一个特定的大小,因为网站可能是移动友好的,这样您就可以得到不同的图像大小。

你也可以使用Chrome和InternetExplorer 这是文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34646971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档