当前位置: 首页 > 面试题库 >

如何在python-selenium中使用browsermob?

百里光熙
2023-03-14
问题内容

使用硒进行GUI测试时,我想使用browsermob监视网络连接。我在这里,这里和这里都找到了一些信息和文档,但是绝对不清楚如何真正使用它。

在文档中显示为:

server = Server("path/to/browsermob-proxy")

但是那条路是什么?在哪里找到它?

我也看到了

java -jar browsermob.jar --port 9090

但对于这个jar文件是什么(如果它是browsermob安装的一部分)或无关的东西,则根本没有任何解释。

如果有人可以提供有关如何使用browsermob以及我需要安装的所有工具的完整示例,我将不胜感激。


问题答案:

浏览器暴民捕获
您可以尝试以下代码

from browsermobproxy import Server
import psutil
import time

for proc in psutil.process_iter():
    # check whether the process name matches
    if proc.name() == "browsermob-proxy":
        proc.kill()

dict = {'port': 8090}
server = Server(path="./BrowserMobProxy/bin/browsermob-proxy", options=dict)
server.start()
time.sleep(1)
proxy = server.create_proxy()
time.sleep(1)
from selenium import webdriver
profile = webdriver.FirefoxProfile()
selenium_proxy = proxy.selenium_proxy()
profile.set_proxy(selenium_proxy)
driver = webdriver.Firefox(firefox_profile=profile)


proxy.new_har("google")
driver.get("http://www.google.co.uk")
print (proxy.har) # returns a HAR JSON blob

server.stop()
driver.quit()

两件事,如果您的代码失败,则有时可能会打开该过程。所以我在下面添加了相同的内容

import psutil
import time

for proc in psutil.process_iter():
    # check whether the process name matches
    if proc.name() == "browsermob-proxy":
        proc.kill()

在创建代理之前和之后也要休眠1秒

server.start()
time.sleep(1)
proxy = server.create_proxy()
time.sleep(1)

这有助于消除一些间歇性问题,这些问题在服务器启动之前可能会面临。



 类似资料:
  • 问题内容: 如何设置Selenium与Python一起使用?我只想用Python编写/导出脚本,然后运行它们。是否有任何资源?我尝试使用谷歌搜索,但是发现的东西要么是指Selenium(RC)的过时版本,要么是Python的过时版本。 问题答案: 您是说Selenium WebDriver吗?… 先决条件 :根据您的操作系统安装Python 使用以下命令安装 并在您的代码中使用此模块 您还可以根据

  • 问题内容: 尝试使用配置文件设置在Firefox中使用Python中的Selenium禁用Flash。这个问题指定了一种通过GUI进行操作的方法,但是对于这种特定用例,最好以编程方式进行操作。具体来说,最好的解决方案是允许在新创建的配置文件对象中禁用Flash。 非常感谢! 问题答案: 您可以使用以下配置文件禁用闪光灯。

  • 我在Firefox中使用Firebug为没有分配ID的链接获取xpath。该链接是一个带有图像作为实际按钮的javascript链接。我希望能够单击此链接,但它不起作用。 实际的xpath是'/html/body/div[2]/div/div/div[3]/div/div/table/tbody/tr[1]/td[2]/form/table/tbody/tr[1]/td/div[1]/div/ta

  • 问题内容: 我想使用Selenium来自动化一些Web任务(不用于测试)。我认为我已经安装了Selenium RC Server,但是由于无法在PHP中找到客户端驱动程序,因此无法编写“测试脚本”(请参阅​​: http //seleniumhq.org/download/)。 我有办法在PHP中使用Selenium吗?这似乎表明我需要PHPUnit http://www.phpunit.de/m

  • 问题内容: 我想使用Selenium单击使用JQuery动态创建选项卡的网站的选项卡。有一个问题,因为它是动态创建的,并且该选项卡没有绑定任何ID(仅提供了类ID),所以我没有足够的线索使用Selenium单击它。 谷歌搜索2周后,我发现可以通过将JQuery注入Selenium中并重新包装使其支持JQuery API来使用JQuery来完成。但是现在的问题是我不知道如何在Selenium中触发J

  • 问题内容: 我目前正在使用Selenium Webdriver通过Facebook用户朋友页面进行解析,并从AJAX脚本中提取所有ID。但是我需要向下滚动才能得到所有的朋友。如何在Selenium中向下滚动。我正在使用python。 问题答案: 你可以使用 其中Y是高度(在全高清显示器上为1080)。 你也可以使用 滚动到页面底部。 如果你想滚动到无限加载的页面,例如社交网络页面,facebook