Ubuntu上的Python Selenium Firefox:新标签不起作用

时间:2015-08-16 21:54:50

标签: python firefox ubuntu selenium pyvirtualdisplay

我正在进行远程网页抓取和抓取,并希望不为一个页面上的每个链接重新加载新的浏览器窗口。

问题是我的Firefox网络驱动程序无法打开新选项卡。

这是我尝试过的:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from pyvirtualdisplay import Display

# launch our headless display 
display = Display(visible=0, size=(800, 600))
display.start()

# launch our web driver and get a page
browser = webdriver.Firefox()
browser.get("http://www.google.com/")

# try to open a new tab
ActionChains(browser).key_down(Keys.CONTROL).send_keys("t").key_up(Keys.CONTROL).perform()

# this should print 2, but it prints 1, because new tab not opened
print len(browser.window_handles)

# clean up everything
browser.quit()
display.stop()

规格:

  • Ubuntu 14.04.2
  • Python 2.7.6
  • Selenium 2.47.1
  • PyVirtualDisplay 0.1.3

1 个答案:

答案 0 :(得分:1)

根据this response from a Selenium developer,自2015年8月起,不支持Firefox中的新标签页。他建议探索Marionette,但目前其相关性会造成更多麻烦,至少对我而言用例。他的解决方案是使用新窗口(driver.execute_script("window.open()"))而不是新标签。