2013-08-26 15 views
6

Voglio verificare se il valore di un elemento di stile è maggiore di un valore particolare (vale a dire, rimane> 666px?), Ma non riesco a ottenere mantenere il valore.Come utilizzare il selenio Webdriver per ottenere il valore dell'elemento "stile"

Ecco il codice HTML dello stile che voglio catturare:

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

Sto usando questo codice per provare a stampare il suo valore, ma non è la stampa:

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

I vogliono qualcosa di simile:

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

risposta

7

Se si esegue .getAttribute("style") in quel lasso, riceverete una stringa.

left: 666px; top: 27px;
È possibile utilizzare la manipolazione di stringhe per recuperare uno stile particolare.

In alternativa, è possibile eseguire alcuni javascript magia utilizzando il JavaScriptExecutor, e andare a prendere il valore left direttamente

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

e poi controllare da lì.

+0

grazie amico ci guarderemo dentro –

+0

hai ottenuto qui con questo @SohaibMaroof? – sircapsalot

9

Si può acquisire il valore calcolato Css come mostrato nella Firebug screenshot qui sotto:

enter image description here

come questo:

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

Si tornerà String

Problemi correlati