2013-08-26 130 views
6

我想檢查樣式元素的值是否大於特定值(即,剩餘> 666px?),但我無法獲取預見價值。如何使用Webdriver Selenium來獲取「樣式」元素的值

這裏是風格的HTML代碼,我想捕捉:

<pre><span id="da2c" style="left: 666px; top: 27px;"></pre> 

我使用此代碼嘗試打印它的價值,但它不是打印:

System.out.print(driver.findElement(By.id("da1c")).findElement(By.cssSelector("span")).getAttribute("style")); 

我想要這樣的東西:

if ((driver.findElement(By.id("da1c")).findElement(By.cssSelector("span")).getAttribute("style")).value> 700) { 
    System.out.println("value exceeding") 
} 

回答

7

如果您在該跨度上執行.getAttribute("style"),您將收到一個字符串。

left: 666px; top: 27px;
您可以使用字符串操作來獲取特定的樣式。

或者,您也可以執行使用JavaScript魔法JavaScriptExecutor,並通過

String script = "var thing = window.document.getElementById('da2c'); 
          window.document.defaultView.getComputedStyle(thing, null).getPropertyValue('left');"; 

直接獲取的left值一些,然後從那裏檢查。

+0

感謝好友 將調查它 –

+0

你有沒有得到anyw這裏有這個@SohaibMaroof? – sircapsalot

9

您可以捕捉計算的CSS值顯示在下面的螢火蟲截圖:

enter image description here

這樣的:

WebDriver web = new FirefoxDriver(; 
String visibility = web.findElement(By.xpath("//your xpath")).getCssValue("display"); 
0
driver.findElement(By.locator(yourLocator)).getAttribute(requiredAttribute) 

它將返回字符串

相關問題