hey*_*ude 1 selenium headless-browser selenium-chromedriver
我正在使用 python Selenium,以及 digitalocean 的无头 ubuntu,其中有无头 Chrome。我用了
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
Run Code Online (Sandbox Code Playgroud)
在 senium.webdriver.common.keys
但这不起作用。
我导入了所需的所有内容,没有 python 语法错误,并成功运行,但选项卡未随我的代码切换。
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
Run Code Online (Sandbox Code Playgroud)
也不起作用。相同的代码可以在我的本地计算机上的选项卡之间切换,该计算机具有物理键盘和显示器。顺便说一句,我将 pyvirtualdisplay 与我的无头 Chrome 一起使用。
我怀疑使用 headless Ubuntu 和 headless Chrome 可能会导致这个问题。我猜想无头 Ubuntu 无法发送密钥,如上面代码所示。
如何让我的远程无头 Ubuntu 将密钥发送到浏览器?
这是众所周知的问题chromedriver。Chromium开发团队的评论
这是我们在 ChromeDriver 中模拟键盘输入的方式的限制。键绕过浏览器进程直接发送到渲染进程。因此,浏览器进程中的任何键盘快捷键处理程序都不会被 sendKeys() 调用。
您可以使用以下代码代替:
driver.execute_script("window.open('url_of_page_to_get', 'new_window')")
Run Code Online (Sandbox Code Playgroud)
URL这将允许您在新选项卡中打开
PS 如果解决了您的问题,请将此答案标记为“已接受”,或者如果出现问题请告诉我
| 归档时间: |
|
| 查看次数: |
4218 次 |
| 最近记录: |