【问题标题】:Paste clipboard to website in python to a textbox [duplicate]将剪贴板粘贴到python中的网站到文本框[重复]
【发布时间】:2020-05-27 07:33:18
【问题描述】:

我需要在 python 中将我在缓冲区(ctrl+v)中的文本粘贴到一个网站,我直接在文本框中打开网站:

    driver = webdriver.Firefox()
    driver.get("https//..")
    item = driver.find_element_by_name('text')
    item.send_keys(Keys.CONTROL + "v")

我有 python 2.7.13

从 cmd 打开网页时:

Traceback (most recent call last):      #driver.get("https://bitbucket.wdc.com/plugins/servlet/ssh/account/keys/add")
      File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 164, in __init__
        self.service.start()
      File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
        os.path.basename(self.path), self.start_error_message)
    selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

【问题讨论】:

标签: python


【解决方案1】:

Selenium 可以发送Ctrl+V,它会从剪贴板粘贴文本

import selenium.webdriver
from selenium.webdriver.common.keys import Keys 

driver = selenium.webdriver.Firefox()
driver.get('https://google.com')

item = driver.find_element_by_name('q')
item.send_keys(Keys.CONTROL + "v")

编辑:我找到了一些带有<textarea> 的页面,它也适用于<textarea>

因为<textarea><iframe>里面所以我必须切换框架。

import selenium.webdriver
from selenium.webdriver.common.keys import Keys 

driver = selenium.webdriver.Firefox()
driver.get('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea')

frame = driver.find_element_by_id('iframeResult')
driver.switch_to.frame(frame)

item = driver.find_element_by_id('w3mission')
item.send_keys(Keys.CONTROL + "v")

您也可以尝试使用paperclip从剪贴板中获取文本并将其作为普通文本放置

import pyperclip

#pyperclip.copy('The text to be copied to the clipboard.')

text = pyperclip.paste()
#print(text)

import selenium.webdriver
from selenium.webdriver.common.keys import Keys 

driver = selenium.webdriver.Firefox()
driver.get('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea')

frame = driver.find_element_by_id('iframeResult')
driver.switch_to.frame(frame)

item = driver.find_element_by_id('w3mission')
item.clear()
item.send_keys(text)

【讨论】:

  • 这是我的 html 消息框: 我使用 item = driver.find_element_by_name('text') 它不起作用:/
  • 您是否收到任何错误消息?更好地显示相关页面的 URL。您也可以尝试paperclip 将文本从剪贴板获取到变量,并将其与变量中的任何其他文本一样放入 textarea。
  • 我找到了一些带有 textarea 的页面,它适用于我的 textarea。
  • 我认为错误是在打开网页时
  • 如果您有错误,请始终提出完整的错误 - 这始终是非常重要的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 2022-06-23
  • 2011-02-01
  • 2014-08-31
相关资源
最近更新 更多