我正在使用Selenium进行一些测试,但是首先我需要获取某个网站的HAR文件(目前https://www.nba.com)。在我的Mac上,在NBA网站上获取HAR文件效果很好,但是当我在Windows VM上运行类似程序(针对Windows进行了一些调整)时,Firefox陷入了加载页面的麻烦,并且从未完成过HAR文件。相同的程序几乎可以在我们运行的所有其他网站上运行,但会卡在nba.com上。
这是我们的代码:
from browsermobproxy import Server
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json
import time
siteURL = 'https://www.nba.com'
t0 = time.time()
server = Server('path to browsermobproxy.bat')
server.start()
print 'Server started'
proxy = server.create_proxy()
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile,executable_path="path to geckodriver.exe")
proxy.new_har(siteURL, options={'captureHeaders': True})
driver.get(siteURL)
result = json.dumps(proxy.har,ensure_ascii=False)
with open('output.har', 'w') as outfile:
json.dump(result, outfile)
server.stop()
print 'HAR file grabbed'
HARfile = result
driver.quit()
t1 = time.time()
print t1-t0
除非我们让它运行30000ms并且Selenium超时,否则不会引发任何错误。
谢谢