browsermobproxy是一个java编写的代理服务器,在自动测试中如果需要Chrome 浏览器network中的加载记录,就需要用
browsermobproxy开启一个代理服务器,设置谷歌浏览器的代理服务器ip,端口号,浏览器实际请求代理服务器,因此可以得到请求记录。
下载地址:https://github.com/webmetrics/browsermob-proxy/downloads
#参考https://stackoverflow.com/questions/29164472/issue-in-har-file-python-selenium-browsermob
#参考https://blog.csdn.net/jzf2050/article/details/42030345
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
from browsermobproxy import Server
server = Server(r"F:\python\browsermob-proxy\browsermob-proxy-2.0-beta-6\bin\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()
proxy.new_har("generated_har")
proxy.blacklist(".*google.*", 404)
proxy.blacklist(".*yahoo.*", 404)
proxy.blacklist(".*facebook.*", 404)
proxy.blacklist(".*twitter.*", 404)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy))
print(proxy.proxy)
#加载谷歌驱动
browser = webdriver.Chrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
#微信上的一个网页,有一个视频
url="http://mp.weixin.qq.com/s?__biz=MzAwMTc4OTU4Nw==&mid=2651582976&idx=2&sn=ba9f54af181837b34ce6985aa143c526&chksm=812b09fcb65c80eaba69bff9caf673339ad724de000c9202531bf381602b0b037ea0ededa5c6&mpshare=1&scene=23&srcid=0218CtB06UANo9gFuW5YIIV7#rd"
#打开url
browser.get(url)
#睡眠,等待页面加载完成
time.sleep(50)
#获取iframe标签,视频窗口
element0 =browser.find_element_by_tag_name("iframe")
#获得标签属性
iurl =element0.get_attribute('src')
#加载iframe中的url
browser.get(iurl)
#proxy.wait_for_traffic_to_stop(1, 60)
time.sleep(50)
#找到播放按钮
element = browser.find_elements_by_class_name("txp_btn_play")#txp_btn
#点击播放按钮
element[0].click()
time.sleep(50)
text_file = open("e:\555555.har", "w")
text_file.write(str(proxy.har))
text_file.close()
server.stop()
browser.quit()
proxy.close()