我有一个功能可以验证复制到剪贴板的数据
def verify_copied_transcript_data(self):
selector = '//input[@type="text" and @name="topic"]'
topic_field = self.wait_for_element_by_xpath(selector)
topic_field.clear()
topic_field.send_keys('')
topic_field.send_keys(Keys.COMMAND, 'v')
topic_field_value = topic_field.get_attribute('value')
self.assertTrue(len(topic_field_value) > 0)
我已验证手动CMD + v确实将复制的文本粘贴到topic_field上。硒为什么不模拟topic_field.send_keys(Keys.COMMAND, 'v')
复制文本的功能是:
def click_copy_transcript(self):
selector = '//div[@id="closeChatModal"]//span[contains(text(), "Copy All")]'
self.wait_for_element_by_xpath(selector).click()
这会将文本复制到剪贴板上
答案 0 :(得分:0)
尝试一下:
topic_field.send_keys(Keys.COMMAND + 'v')
完整代码为:
def verify_copied_transcript_data(self):
selector = '//input[@type="text" and @name="topic"]'
topic_field = self.wait_for_element_by_xpath(selector)
topic_field.clear()
topic_field.send_keys('')
topic_field.send_keys(Keys.COMMAND + 'v')
topic_field_value = topic_field.get_attribute('value')
self.assertTrue(len(topic_field_value) > 0)
您还可以尝试使用ActionChains:
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
ActionChains(driver) \
.key_down(Keys.COMMAND) \
.key_down('v') \
.key_up('v') \
.key_up(Keys.COMMAND) \
.perform()
答案 1 :(得分:0)
如何?
ActionChains(driver).key_down(u'\ue03d').key_down('v').perform()
甚至:
ActionChains(driver).key_down(u'\ue03d').send_keys('v').perform()
我已经在PC上使用Control键而不是Command(很明显!)对其进行了检查,并且都可以使用。
PS。也许首先,您可能需要模拟单击要粘贴缓冲区的字段。
答案 2 :(得分:0)
正如您提到的,以下代码将文本复制到剪贴板:
def click_copy_transcript(self):
selector = '//div[@id="closeChatModal"]//span[contains(text(), "Copy All")]'
self.wait_for_element_by_xpath(selector).click()
现在,要从剪贴板复制文本,您可以使用paste()
中的Pyperclip – A cross-platform clipboard module for Python
方法,如下所示:
import pyperclip
def click_copy_transcript(self):
selector = '//div[@id="closeChatModal"]//span[contains(text(), "Copy All")]'
self.wait_for_element_by_xpath(selector).click()
topic_field.send_keys(pyperclip.paste())
注意:根据adam-p/cb.py
,它被提及为:
将文本复制到剪贴板的Python函数(到目前为止仅支持Windows)。