2012-07-19 37 views
3

我有一個網頁,顯示動態佈局(由extjs生成),它應占據寬度的100%。 我正在使用獲取Css值寬度以% - Selenium WebDriver- JUnit [已解決]

WebElement element = driver.findElement(By.id(「ext-gen4」));

String backgroundColor = element.getCssValue(「width」);

但是,它目前正在返回像素寬度,並且頂級WebDriver瀏覽器(Firefox)不以最大模式顯示,因此值更小。 有沒有什麼辦法可以得到%的價值?我來了解一些GetCssProperty類,但我無法正確使用它。有關於此的任何細節? 我正在使用Selenium WebDriver 2.23和JUnit。

我想必須有一種方法來最大化窗口。

在此先感謝。

+0

「我還沒有看進去。」你甚至承認? – 2012-07-19 08:27:41

+0

@Frank:不好意思讓你困惑,但是我的問題是關於找到div的寬度Css屬性或者任何類似%的東西,比如100%或者60%。目前,getCssValue以像素爲單位返回寬度。 – 2012-07-19 12:11:06

+0

如果你的意思是[that](http://www.w3schools.com/cssref/tryit.asp?filename=trycss_dim_width_percent)請將其添加到你的問題 – 2012-07-19 13:57:11

回答

2

正如Slanec說,你可以最大限度地喜歡

driver.manage().window().maximize() 

你的窗口比你可以創建一個方法

private float getWidthInRelationToWindow(WebElement element){ 
    return ((float)element.getSize().getWidth())/ 
        this.drivy.manage().window().getSize().getWidth(); 
} 
+0

非常感謝。我對堆棧溢出的信心是合理的。 :) – 2012-07-20 05:15:29

0

USI此最大化:

driver.manage().window().maximize() 

甚至本作全屏:

driver.findElement(By.tagName("html")).sendKeys(Keys.F11); 

你不能得到比像素以外的價值 - 你必須自己計算的百分比。請注意,您甚至不必使用CSS值,但WebElement上有一個getSize()方法,它也可用於獲取<html><body>元素的大小,您甚至不需要最大化。

+0

謝謝,但這不是我問的問題。抱歉讓你們感到困惑。我想找到一個div寬度爲**的CSS屬性**。目前它返回像素中的值,使得我的測試在不同的系統或分辨率下無用。 – 2012-07-19 12:09:36

+0

任何想法如何計算寬度的百分比?糾正我,如果我錯了 - 我得到大小的HTML機構,大小的div和計算?爲它寫一個函數? – 2012-07-19 12:13:20

+1

@MaitreyaDwaipayan正如我所說,你需要自己計算一下。只需用窗口(或包含元素)的寬度來劃分寬度即可。使用'getCssValue(「width」)'或'getSize()。width'我給你。 – 2012-07-19 13:32:03