getSize方法返回呈现的Web元素大小,而不是图像的物理大小。如果您的目标是获取固有的高度和重量,则可以尝试获取naturalWidth和naturalHeight属性:
WebDriver driver = new FirefoxDriver();webdriverwait wait = new webdriverwait(driver, 20);driver.get('http://stackoverflow.com');// get the intrinsic size with the getAttribute methodWebElement ele = driver.findElement(By.cssSelector('img'));String naturalWidth = ele.getAttribute('naturalWidth');String naturalHeight = ele.getAttribute('naturalHeight');// get the intrinsic size with a piece of JavascriptArrayList result = (ArrayList)((JavascriptExecutor) driver).executeScript('return [arguments[0].naturalWidth, arguments[0].naturalHeight];', ele);Long naturalWidth2 = (Long)result.get(0);Long naturalHeight2 = (Long)result.get(1);解决方法
这是场景。
当使用GetSize()时,GetLocation()针对图像ID“ FlashID1x”起作用,它始终给出250,300,但元素的实际高度和宽度为1 X1,这基本上是错误的。
这是我的目标dom:
<img border='0' alt='' src='http://s2.adform.net/Banners/invisible.gif?bv=2'/>
这是我的代码:
System.out.println('total : '+iframe.size()); //driver.switchTo().frame(frame);org.openqa.selenium.Point point=driver.findElement(By.xpath('.//*[@id=’FlashID1x’]')).getLocation(); System.out.println('X Position : '+point.x); System.out.println('Y Position : '+point.y);System.out.println('X getX : '+point.getX()); System.out.println('Y gety : '+point.getY());Rectangle pointer=driver.findElement(By.xpath('.//*[@id=’FlashID1x’]')).getRect();System.out.println('height : '+pointer.hashCode();System.out.println(' width : '+pointer.getWidth());System.out.println('getHeight : '+pointer.getHeight()); System.out.println(' getWidth : '+pointer.getWidth());