我是PhantomJs的新手。我通过selenium webdriver使用phantomjs,python作为我的语言。我想伪造我的flash插件信息,这是使用javascript非常明显。
我想使用selenium webdriver在Python中做这样的事情(在javascript中完成)。
page.onInitialized = function () {
page.evaluate(function () {
(function () {
window.navigator.plugins = {
'length': 1,
'Shockwave Flash': {
'description':'fakeflash'
}
};
})();
});
};
我不知道如何在Python中实现page.onInitialized和其他函数(使用selenium webdriver) 任何帮助将不胜感激。
答案 0 :(得分:2)
就个人而言,我找不到让它工作的方法,所以我转而使用Firefox通过selenium webdriver并安装了gnash作为flash插件。我知道这不是你想要的,但它最终会产生预期的效果,只要你有系统内存来支持它。
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get(url)
print browser.page_source
browser.quit()
display.stop()
或者更安全(并且永远不会留下讨厌的Xvfb和firefox进程!):
from pyvirtualdisplay import Display
from selenium import webdriver
try:
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get(url)
print browser.page_source
finally:
if browser:
browser.quit()
if display:
display.stop()
我想也可以在虚拟显示器中使用Chrome。如果有人为了让我们分享魔力让webdriver.PhantomJS在Flash faker中预加载,我很乐意切换,因为它的系统资源要求要少得多。