在 ubuntu 系统上,我正在尝试使用带有 python-selenium 测试的"browsernmob-proxy"。按照这里的文档,我安装了"browsermob-proxy",并尝试了以下python代码:
from selenium import webdriver
from browsermobproxy import Server
server = Server("/home/adietz/Projects/Venv/nosetests/lib/python2.7/site-packages/browsermobproxy/server.py")
server.start()
但这立即失败并出现以下错误:
======================================================================
ERROR: test_example2.TestSuite.test_network
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/adietz/Projects/Venv/nosetests/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/home/adietz/Projects/Jenkins/bsp-usecase-tests/selenium/test_example2.py", line 41, in test_network
server.start()
File "/home/adietz/Projects/Venv/nosetests/local/lib/python2.7/site-packages/browsermobproxy/server.py", line 113, in start
stderr=subprocess.STDOUT)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
知道如何解决这个问题吗?
我也尝试使用
server = Server("/home/adietz/Projects/Venv/nosetests/lib/python2.7/site-packages/browsermobproxy")
相反,但这失败并出现以下错误:
======================================================================
ERROR: test_example2.TestSuite.test_network
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/adietz/Projects/Venv/nosetests/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/home/adietz/Projects/Jenkins/bsp-usecase-tests/selenium/test_example2.py", line 40, in test_network
server = Server("/home/adietz/Projects/Venv/nosetests/lib/python2.7/site-packages/browsermobproxy")
File "/home/adietz/Projects/Venv/nosetests/local/lib/python2.7/site-packages/browsermobproxy/server.py", line 81, in __init__
"in path provided: %s" % path)
ProxyServerError: Browsermob-Proxy binary couldn't be found in path provided: /home/adietz/Projects/Venv/nosetests/lib/python2.7/site-packages/browsermobproxy
补遗
- 我可能设法在端口 8088 或 8089(不完全确定(上让
browsermob-proxy
调谐,但示例代码仍然无法运行....
我猜,你为代理服务器提供了错误的路径。你的代码指向浏览器生物代理python绑定而不是服务器。请按照以下步骤操作。
-
从位置 https://github.com/lightbody/browsermob-proxy/releases 下载浏览器代理,并将文件解压缩到特定目录。我已经解压缩/解压缩到目录
C:\Projects\BrowserMobProxy
安装 浏览器代理绑定(如果尚未安装(。点安装浏览器移动代理
然后,您可以在编码中指出服务器路径,如下所示。我正在使用窗户。如下所述。
from browsermobproxy import Server server = Server("C:\Projects\BrowserMobProxy\bin\browsermob-proxy") server.start() proxy = server.create_proxy() from selenium import webdriver profile = webdriver.FirefoxProfile() profile.set_proxy(proxy.selenium_proxy()) driver = webdriver.Firefox(firefox_profile=profile) proxy.new_har("google") driver.get("http://www.google.co.uk") proxy.har # returns a HAR JSON blob server.stop() driver.quit()
请相应地更改代理路径(下载或提取的位置(。