2017-09-17 8 views
0

私は画像の背景URLを取得しようとしています。以下、私がjavascriptまたはseleniumを使用して画像の背景URLを取得する方法

document.getElementsByClassName( "偉大-banner.live-バナー")を使用してみましたWebページ

<style type="text/css"> 
 
\t    .great-banner.live-banner { 
 
\t    background-image: 
 
\t     url("urloftheimage"); 
 
\t    } 
 
      </style> 
 
\t \t \t <div class="great-banner live-banner"> 
 
\t \t \t </div>

からのコードがある。style.backgroundimage

window.getComputedStyleが(document.getElementsByClassName( "。great-banner.live-banner")、false);しかし、これらの両方は、私も

window.getComputedStyleが(document.getElementsByClassName(」。偉大-banner.live-バナー ')[0]、ヌル).getPropertyValueを(' しようとした私に

を形成する動作しませんでした私は以下のエラーを取得しています

エラー:キャッチしていないタイプエラー: 'ウィンドウ'で 'getComputedStyle'を実行できませんでした:パラメータ1はありません。タイプ 'Element'の場合

背景画像の取得方法を教えてください。

+0

style.backgroundImage(画像における資本Iに注意してください) – jeff

+0

を使用してみてください、私はそれを試してみましたが、このエラー捕捉されない例外TypeErrorを得た:プロパティを読み取ることができません「backgroundImageの」の –

+1

未定義の可能性重複の[divの背景画像のURLを取得できますか?](https://stackoverflow.com/questions/8809876/can-i-get-divs-background-image-url) –

答えて

0

まず第一にdocument.getElementsByClassNameは要素のコレクションを返しますので、styleプロパティはありません。 - https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName

第2に、関数に渡す引数は、CSSセレクタではなくクラス名でなければなりません。セレンで使用しているときに

window.document.defaultView.getComputedStyle(document.getElementsByClassName('great-banner live-banner')[0], null).getPropertyValue('background-image').split(/'|\"/)[1]; in java script. It will return the URL.

: - たぶん、あなたはquerySelectorAll探している代わりに

0

document.querySelectorAll(".great-banner.live-banner")[0].style.backgroundImageを試してみてくださいhttps://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

私は解決策を見つけた

JavascriptExecutor jsExec = (JavascriptExecutor) driver; jsExec.executeScript("return window.document.defaultView.getComputedStyle(document.getElementsByClassName('great-banner live-banner')[0], null).getPropertyValue('background-image').split(/'|\"/)[1];"));

「リターンを追加します。 '上記の行のようにスクリプト内でセレンに使用ILE、そうでない場合はnull値を提供します

関連する問題