2016-12-01 9 views
0

私のpseude要素のコンテンツの価値を追求したいと思います。私のコードは "\ f068" が、リターンを返さない何らかの理由でのCSS内容:「 f068」は「?」と表示されます。

.fa-minus:before { 
    content: "\f068"; 
} 

script = "return window.getComputedStyle(document.querySelector('small.fa.text-muted.fa-minus'),':before').getPropertyValue('content');"; 
js = (JavascriptExecutor) webdriver; 
content = js.executeScript(script); 
System.out.println("content : " + content); 

"?"代わりに。それはなぜですか? "\ f068"を返すために何をする必要がありますか?

デバッグの:さて、ここで

enter image description here

+0

これはあなたのコンソールがそのコードポイントを印刷できないためだと思います。 'System.out.println(" \ uf068 ")'を試して、その内容を見てください。 –

+0

バックスラッシュは、コンテンツがコードがU + f068の実際の文字になることを意味します。あなたはそこに一つの文字を取得しようとしています。印刷できるかどうかは、コンソールのエンコーディングによって異なります。この文字はUnicodeのプライベート使用範囲にあるため、標準フォントには含まれていないため、これはほとんどありません。あなたはデバッガで正しい文字を持っていることを確認することができます。 – RealSkeptic

+0

@ Andy、System.out.println( "\ uf068")は "?" –

答えて

1

あなたはjavascriptを

var el = document.querySelector('.fa-minus'), 
pseudoEl = window.getComputedStyle(el,'::after'), 
content = pseudoEl.getPropertyValue("content"), 
characterValue = '\\' + content.charCodeAt(1).toString(16); 

console.log(characterValue); 

でそれを行うことができる方法だ、私は正直に互いに異なっているどのくらいのJavaとJavaScriptを知っているので、これはありませんちょうど私の2セントです:D

fiddle

+0

あなたは星です! –

+0

@RicoStrydomがうれしく思います! (文字列)を返します。 – VilleKoo

+1

'String script =" return window.getComputedStyle(document.querySelector( 'small.fa.text-muted.fa-minus')、 ':before')。getPropertyValue( 'content')。charCodeAt(1).toString 16); "; JavascriptExecutor js =(JavascriptExecutor)webdriver; 文字列コンテンツ=(文字列)js.executeScript(スクリプト); System.out.println(content); ' –

関連する問題