我正在使用python Selenium,在digitalocean上使用无头ubuntu,它上面有无头Chrome。 我用了
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
在 senium.webdriver.common.keys
但它没有用。
我导入了所需的所有内容,没有出现python语法错误,并且运行成功,但是我的代码没有切换选项卡。
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
也不起作用。相同的代码可以在本地计算机上的选项卡之间切换,该计算机具有物理键盘和显示器。顺便说一句,我在无头Chrome上使用了pyvirtualdisplay。
我怀疑使用无头Ubuntu和无头Chrome可能会导致此问题。我猜无头的Ubuntu可以' t发送密钥,如上面的代码所示。
如何将我的远程无头Ubuntu密钥发送到浏览器?
答案 0 :(得分:1)
这是众所周知的chromedriver
问题。来自Chromium
开发人员团队的评论
这是我们在ChromeDriver中模拟键盘输入的方式的限制。密钥将直接发送到呈现过程,绕过浏览器进程。因此,sendKeys()不会调用浏览器进程中的任何键盘快捷键处理程序。
您可以使用以下代码:
driver.execute_script("window.open('url_of_page_to_get', 'new_window')")
这样您就可以在新标签页中打开URL
P.S。请将此答案标记为"已接受"如果它解决了您的问题或在发生问题时让我知道