Python 3硒|剪贴板在Windows的无头chromedriver上不起作用

时间:2018-10-31 10:02:22

标签: python selenium clipboard emoji headless-browser

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

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

我的情况

我需要在文本框中输入特定的文本。不幸的是,我所写的文字中几乎没有 emojis 的实例,因此send_keys()不是一个选择。相反,在StackOverflow的帮助下,我最终使用了pyperclip.copy(text)element.send_keys(Keys.CONTROL,'v'),它们工作正常(成功复制了表情符号)。

但是我还需要ChromeDriver为--headless。除复制粘贴部分外,其他所有内容均正常运行。

我的问题

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

  • 必须隐藏网络浏览器(例如ChromeDriver中的--headless
  • 它可以将 emojis 写入文本元素
  • 必须在Windows操作系统(Windows 7-10)上运行

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,所以我使用了 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()