2017-04-26 15 views
0

クライアントブラウザで実行すると、特定のリモートサーバーからいくつかのアセット(* .js)を取得していることを検証する必要があります。Selenium - どこからスクリプトがダウンロードされたかを調べる

言って2つのオプションが存在します。それは、サーバーAからスクリプトを取得するか、サーバーBからコピーを取得するかどうか。私は、スクリプトがサーバAからダウンロードされたことを(いくつかの前提条件に基づいて)主張する必要があります。

質問:セレンを使用してロードされたjavascriptのソースURLを検査する方法はありますか?

+0

これまでに試したことはありますか? – aberna

+0

これまでのところ私のアプローチはセレンを含まなかった。私はWireMockを使ってブラウザからサーバーへのプロキシ要求を行っていますが、アセットを別のサーバーから取得する必要がある場合は、その特定の要求(プロキシを経由しない)はプロキシを経由しません。 –

+0

[ask]と[どのくらいの研究努力が必要ですか?](https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users)をお読みください。 )あなたが試したコードとエラーメッセージなどを含む実行結果を提供してください。 – JeffC

答えて

0

ここでは、stackoverflowサイトからjavascriptライブラリのURLを抽出するための可能なソリューションです。

あなたが作業しているサイトにソリューションを適合させる必要があります。出力の

driver = webdriver.Firefox() 
driver.get("http://www.http://stackoverflow.com/") 
link= driver.find_elements_by_tag_name('script') 
for i in link: 
    print i.get_attribute("src") 

例:

http://rules.quantcount.com/rules-p-c1rF4kxgLUzNc.js 
http://edge.quantserve.com/quant.js 
http://b.scorecardresearch.com/beacon.js 
https://www.google-analytics.com/analytics.js 
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js 
https://cdn.sstatic.net/Js/stub.en.js?v=9798373e8e81 

ページ内の要素を見つけるための様々な戦略があります。 あなたのケースに最も適したものを使用することができます(http://selenium-python.readthedocs.io/locating-elements.html

+0

ありがとう、それは私にとっては良いスタートです。私の懸念は、このアプローチは、成功してダウンロードされたスクリプトを保証できないということです。 HTMLを調べて、「あなたが知っているのは、いくつかの 'script'タグがあり、この' src'属性を持っています」と言っています。私はworkarroundに感謝しますが、セレンの中で、開発者コンソールのネットワークタブを手動で調べることができます。 –

+0

入手しました。 https://github.com/lightbody/browsermob-proxyを調べて、ページローディングによるすべてのリクエストを調べる必要があります – aberna

+0

興味深いことに、ポインタのおかげです。私はそれを徹底的に調べます。元の質問に対するあなたの答えは、これはセレンだけではできないということです、そうですか? –

関連する問題