Selenium:send_keys()在无头Firefox上不起作用

时间:2017-01-14 17:03:45

标签: selenium selenium-firefoxdriver headless-browser

我正在使用无头的Firefox,它位于digitalocean的无头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_keys不起作用。 有帮助吗?谢谢!我在谷歌上看了很多,但没有帮助。

--------------------------- EDIT ------------------- --------

我的无头火狐版本是45.0.1。有趣的是,我在我的Mac上使用firefox 45.0.1运行相同的代码,并且它运行得很好。我在无头linux和Mac上使用firefox45.0.1

0 个答案:

没有答案