2017-04-26 57 views
0

下載我要驗證一個Web應用程序,在客戶端瀏覽器執行,從一個特定的遠程服務器獲取的部分資產(* .js文件)。硒 - 找出腳本是從

說存在兩種選擇:是否得到腳本從服務器一個或從服務器得到一個副本。我需要聲明(基於某些先決條件)腳本是從服務器A下載的。

問題:有沒有一種方法來檢查使用硒(最好與python)加載的JavaScript源URL?

+0

你有什麼到目前爲止已經試過? – aberna

+0

我的方法到目前爲止不涉及硒。我使用WireMock來代理瀏覽器向服務器發出的請求,但是當資產應該來自不同的服務器時,該特定請求(如果它曾經發過)不通過代理服務器。 –

+0

請仔細閱讀[問]和[多少研究工作,預計?(https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users )請提供您嘗試過的代碼和執行結果,包括任何錯誤消息等。 – JeffC

回答

0

這是一個可能的解決方案,從計算器現場提取的JavaScript庫的網址。

你要適應解決您正在使用的網站。輸出的

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,但是我會對在selenium中做的工作感興趣,我可以在開發人員控制檯上手動檢查網絡選項卡。 –

+0

明白了。您應該如此調查https://github.com/lightbody/browsermob-proxy並調查頁面加載的所有請求 – aberna

+0

有趣的是,感謝指針。我會仔細看看的。所以你對原始問題的回答是,這不能僅由硒完成,對嗎? –