2013-08-26 15 views
6

Chcę sprawdzić, czy wartość elementu stylu jest większa niż określona wartość (tj. Pozostaje> 666 piks.?), Ale nie mogę uzyskać trzymanie wartości.Jak używać Web Selector Selenium, aby uzyskać wartość elementu "style"?

Oto kod HTML stylu, że chcę, aby uchwycić:

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

używam tego kodu, aby spróbować wydrukować swoją wartość, ale nie jest to druk:

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

I chcesz coś takiego:

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

Odpowiedz

7

Jeśli wykonasz .getAttribute("style") na tym przęśle, otrzymasz String.

left: 666px; top: 27px; Za pomocą operacji na ciągach można pobrać określony styl.

Alternatywnie, można wykonać niektóre javascript magia pomocą JavaScriptExecutor i pobierania wartości left bezpośrednio

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

a następnie sprawdzić go stamtąd.

+0

dzięki kolego zajrzy do niego –

+0

czy dostałeś coś tutaj z tym @SohaibMaroof? – sircapsalot

9

można uchwycić wartość wyliczona CSS, jak pokazano na zrzucie firebug poniżej:

enter image description here

tak:

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

on powróci String

Powiązane problemy