我正在Raspberry Pi(Raspbian Stretch)上使用名为selenium-webdriver的node.js包和Firefox v52.9.0。
在某个时候,我想执行Firefox GUI的“页面另存为”功能。
我在this page上找到了对类似内容的引用:
# Write the output to output.txt
with open('output.txt', 'w') as file:
file.write(str(browser.page_source))
这里的问题是本指南使用的是python而不是node。我不确定如何实现等效代码。
我在文档中找到了this,但是文档中没有任何示例代码,而且我不确定如何实现.write
函数。谁能解释(或为我提供参考资源)如何在selenium-webdriver中实现“保存文件”功能?
值得一提的是,我需要保存的文件中包含一些AJAX和Javascript对DOM所做的修改-仅保存html文档的原始源是不可接受的,但是需要表示页面的当前状态。
以下是上下文代码:
const {Builder, By, Key, until} = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().forBrowser('firefox').build();
try {
await driver.get('http://localhost/mypage.html');
await driver.sleep(10000);
/*SOMEHOW SAVE THE PAGE TO A FILE */
} finally {
await driver.quit();
}
})();
答案 0 :(得分:2)
只需致电driver.getPageSource()
try {
await driver.get('https://google.com');
await driver.sleep(1000);
const source = await driver.getPageSource();
fs.writeFileSync('source.html', source);
} finally {
await driver.quit();
}