我正在使用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无法发送密钥,如上面的代码所示。
如何让我的远程无头Ubuntu将密钥发送到浏览器?
这是的著名问题chromedriver
。Chromium
开发人员团队的评论
这是我们在ChromeDriver中模拟键盘输入的方式的限制。密钥将直接发送到渲染过程,而绕过浏览器过程。因此,sendKeys()不会调用浏览器进程中的任何键盘快捷键处理程序。
您可以改用以下代码:
driver.execute_script("window.open('url_of_page_to_get', 'new_window')")
这将允许您URL
在新标签页中打开
附注:如果解决了您的问题,或者在出现问题时让我知道,请将此答案标记为“已接受”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句