簡體   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