【问题标题】:How to programmatically get the rendered dimensions of an image in a web page?如何以编程方式获取网页中图像的渲染尺寸?
【发布时间】:2016-04-11 08:39:20
【问题描述】:
【问题讨论】:
标签:
javascript
c#
.net
winforms
webbrowser-control
【解决方案1】:
我一直在用Selenium WebDriver 进行测试,我认为这是目前最好的选择
我做了一个小测试,它按预期工作,这是测试代码
[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打开Firefox,你可以看到网站正在加载,加载后你可以访问网站的DOM,甚至你可以执行Javascript代码,通过XPath,Css,ClassName,TagName查找元素,等等……
还请记住,这是一个浏览器,您应该最大化或为窗口浏览器指定特定尺寸,因为该网站可能适合移动设备,因此您可以获得不同的图像尺寸
您也可以使用 Chrome 和 InternetExplorer here is the documentation