小编Jos*_*ose的帖子

如何在Python上使用selenium webdriver和browsermob代理捕获网络流量?

我想通过在Python上使用Selenium Webdriver来捕获网络流量.因此,我必须使用代理(如BrowserMobProxy)

当我使用webdriver.Chrome时:

from browsermobproxy import Server

server = Server("~/browsermob-proxy")

server.start()
proxy = server.create_proxy()

from selenium import webdriver
co = webdriver.ChromeOptions()
co.add_argument('--proxy-server={host}:{port}'.format(host='localhost', port=proxy.port))

driver = webdriver.Chrome(executable_path = "~/chromedriver", chrome_options=co)

proxy.new_har
driver.get(url)
proxy.har # returns a HAR 

for ent in proxy.har['log']['entries']:
    print ent['request']['url']
Run Code Online (Sandbox Code Playgroud)

网页已正确加载,所有请求都可在HAR文件中访问和访问.但是当我使用webdriver.Firefox时:

# The same as above
# ...
from selenium import webdriver
profile  = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile, proxy = proxy.selenium_proxy())

proxy.new_har
driver.get(url)
proxy.har # returns a HAR

for ent in proxy.har['log']['entries']:
    print ent['request']['url']
Run Code Online (Sandbox Code Playgroud)

无法正确加载网页,并且HAR文件中的请求数小于应该的请求数.

你知道第二个代码中的代理设置有什么问题吗?我应该如何修复它以正确使用webdriver.Firefox?

python selenium python-requests selenium-webdriver browsermob

9
推荐指数
1
解决办法
2万
查看次数

在 Selenium Webdriver 中,如何获取元素后面的文本?

我想获得恰好位于特定元素之后的文本。请看示例代码:

<div id="content-tab-submitter" class="">
    <h4>Sender</h4>
    <p>
        <span class="screenHidden">Name: </span>
        submitter
        <br>

        <span class="screenHidden">E-mail address:</span>
        submitter@asd.com
        <br>

        <span class="screenHidden">Account: </span>
        asdas
        <br>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

我想获取紧随其后<span>包含“帐户”的文本。通过使用此 XPath 表达式:

<div id="content-tab-submitter" class="">
    <h4>Sender</h4>
    <p>
        <span class="screenHidden">Name: </span>
        submitter
        <br>

        <span class="screenHidden">E-mail address:</span>
        submitter@asd.com
        <br>

        <span class="screenHidden">Account: </span>
        asdas
        <br>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

Java 给了我一个错误,因为输出不是 Web 元素,而是文本。所以,不可能使用findElement。

我怎样才能以干净的方式获得这段文字?我的意思是我不想获取所有文本(在本例中):submitter\nsubmitter@asd.com\nasdas,然后提取所需的文本。

java selenium xpath selenium-webdriver

5
推荐指数
1
解决办法
1万
查看次数