Selenium:send_keys()不';不要在无头Firefox上工作

Selenium:send_keys()不';不要在无头Firefox上工作,selenium,selenium-firefoxdriver,headless-browser,Selenium,Selenium Firefoxdriver,Headless Browser,我正在使用headless Firefox,它位于digitalocean的headless Ubuntu上。 下面是我的代码 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from pyvirtualdisplay import Display display = Display(visible

我正在使用headless Firefox,它位于digitalocean的headless Ubuntu上。 下面是我的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from pyvirtualdisplay import Display

display = Display(visible=0, size=(1024, 768))
display.start()

driver =  webdriver.Firefox()
main_window = driver.current_window_handle

driver.get("https://www.google.co.kr")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')


driver.switch_to_window(main_window)
print driver.title

driver.get("http://www.bing.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')

driver.switch_to_window(main_window)
print driver.title

for i in range(0,3):
    driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
    driver.switch_to_window(main_window)
    print driver.title
结果是:

谷歌 宾 宾 宾 宾

这意味着send_keys()根本不起作用,它可以创建选项卡并在选项卡之间切换。没有运行时错误。 同样的代码可以在我的本地计算机上的选项卡之间切换,这台计算机有物理键盘和显示器

我怀疑无头Ubuntu或Firefox制作的send_键不起作用。 有什么帮助吗?谢谢我在谷歌上读了很多书,但没有帮上忙

---------------------------编辑---------------------------


我的无头firefox版本是45.0.1。有趣的是,我在Mac电脑上运行了与firefox 45.0.1相同的代码,它运行得非常好。我在无头linux和Mac上都使用firefox45.0.1

您使用的firefox版本是什么?我们不得不回滚到以前的版本,因为selenium的web驱动程序不完全支持最新版本。建议firefox不支持您想做的事情->它打开窗口而不是选项卡。您可以使用单独的窗口或切换浏览器。我的情况是,我最好在选项卡之间切换,而不是在窗口之间切换。我的headless firefox版本是45.0.1。有趣的是,我在Mac电脑上运行了与firefox 45.0.1相同的代码,它运行得非常好。我在headless linux和Mac上都使用了firefox45.0.1。我们遇到了FF45的问题,因此不得不回滚并安装FF44。不过你有一个不同的问题,所以我不确定这是否有帮助。