繁体   English   中英

Python 3 硒 | 剪贴板不适用于 Windows 上的无头 chromedriver

[英]Python 3 Selenium | Clipboard not working on headless chromedriver on Windows

在 StackOverflow 中,已经有一篇关于此主题的类似帖子 尽管帖子的 OP 回答说“这是 Windows 中的一个错误”并且“我没有找到解决方案,我只是删掉了部分代码”。

我的情况略有不同。 我无法删除部分代码,但我可以使用不同的网络浏览器。

我的情况:

我需要将特定文本写入文本框。 不幸的是,我正在写的文本包含很少的emojis实例,因此send_keys()不是一个选项。 相反,在 StackOverflow 的帮助下,我最终使用pyperclip.copy(text)element.send_keys(Keys.CONTROL,'v')效果很好(它成功复制了表情符号)。

但我还需要 ChromeDriver 为--headless 除了复制粘贴部分外,一切都运行良好。

我的问题

我的问题是:我应该如何解决这个问题?

  • 必须隐藏 Web 浏览器(例如--headless at ChromeDriver)
  • 它可以将表情符号写入文本元素
  • 必须在 Windows 操作系统 (Windows 7 - 10) 上工作

我遇到了同样的问题,所以我使用 klembord 而不是 pyperclip。

https://pypi.org/project/klembord/

# pip install webdriver-manager
# pip install klembord
# pip install selenium
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from webdriver_manager.firefox import GeckoDriverManager
import klembord
klembord.init()
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options,executable_path=GeckoDriverManager().install())
print("Headless Firefox Initialized. Wait for output")
driver.get("https://www.lipsum.com")
l = driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div[3]/div[1]/p")
klembord.set_text(l.text) # setting text to clipboard
print("Check clipboard by pressing WIN + V or CTRL +V")
driver.quit()

据我所知,似乎无法以无头模式访问剪贴板。 我找不到任何确定的东西,但这是我能证明它无法完成的最接近的证据: https ://groups.google.com/g/selenium-users/c/-nxTX4eTbwA/m/wQY_HlZQBAAJ

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM