使用PhantomJS、Selenium Webdriver和Python

11

我目前正在使用Selenium Webdriver对页面进行一些验证。Webdriver由PhantomJS驱动。我知道在PhantomJS中,可以通过以下示例监听网络:(来自https://github.com/ariya/phantomjs/wiki/Network-Monitoring)。

var page = require('webpage').create();
page.onResourceRequested = function (request) {
    console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function (response) {
    console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);

我该如何在Webdriver中实现这个功能?我能否将函数绑定到DesiredCapabilities上?


这怎么是一个Python问题? - Marcin
提出的解决方案对我没有用,但这个可以(它使用driver.execute_script)。 - AlexMe
1个回答

0
你在这里想要实现什么?可以注入JavaScript。因此,您可以创建一个对象来监听页面并将其记录到一个对象中,在执行某些操作后稍后抓取该对象。
我会尝试一下,但我不确定phantomJS是做什么的。
browser.execute_script("    
var requests= [];
var received = [];
var page = require('webpage').create();
page.onResourceRequested = function (request) {
    requests.push('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function (response) {
    received.push('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);");

稍后(如果您仍在同一页上),请获取请求:

browser.execute_script("function(){return requests }()");

以及接收到的连接:

browser.execute_script("function(){return received}");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接