2016-12-05 1 views
0

In Selenium habe ich bereits gefunden, mein ElementÜberprüfen Sie, ob WebElement einen bestimmten Inhalt in die hat: nach dem Pseudo-Klasse

IWebElement icon = box.FindElement(By.ClassName("box-icon")); 

Dieses Element (Symbol) hat manchmal einen Inhalt auf diese Weise eingestellt:

&:after { 
     content: $icon-special; 
    } 

Ich möchte überprüfen, ob die content-Eigenschaft derzeit auf $icon-special festgelegt ist. Ich weiß, dass ich JavaScript-Skript unter Verwendung JSDriver ausführen muss und meine IWebElement icon an es übergeben muss, aber ich kann nicht after.content: vom JavaScript/jQuery lesen.

kam ich mit, dass bis:

var script = @"return window.getComputedStyle(arguments[0], ':after').getPropertyValue('content');"; 
      var result = JSDriver.Execute(script, icon); 

aber das Ergebnis ist einige seltsame Zeichen wie Herzen, Punkte usw .;

Ich kann DOM nicht ändern, während ich teste.

+1

Können Sie das Snippet Ihrer eigentlichen HTML-Post? – Cosmin

+0

Sie können den Inhalt eines Pseudoelements nicht bearbeiten, da es nicht Teil des DOM ist. Sie können dies mit "toggleClass" oder "hasClass, addClass, removeClass" Ansatz erreichen ... – maverick

Antwort

1

Die return-Anweisung wird im Skript Ausdruck fehlt:

string script = @"return window.getComputedStyle(arguments[0], ':after').getPropertyValue('content');"; 
string result = (string)JSDriver.Execute(script, icon); 
+0

Yeah bereits herausgefunden, Entschuldigung für spätes Update, aber was ich bekomme ist kein normaler Text, sondern seltsame Zeichen. Ich würde erwarten zu bekommen: $ icon-special; anstelle von "\"  \ "" – Yoda

+1

Es sieht so aus, als ob Sie den für die Entität '$ icon-special; definierten Zeichencode (Unicode-Codierung) erhalten, da dieser nicht zitiert wird. Sie könnten einfach das Ergebnis gegen den Code geltend machen: 'result ==" \ uXXXX "' –

+0

Jetzt ist es vernünftiger, Ihre Erklärung zu verstehen:). Kann ich irgendwie vorhersagen, dass die Kodierung für eine bestimmte Entität ist? Kann es sich ändern, wenn sich die anderen Stile ändern? Vor allem die letzte Frage ist sehr wichtig. – Yoda

Verwandte Themen