有没有办法使用 Selenium 2 和 Python 绑定(bind)来执行复制和粘贴?
我已突出显示要复制的元素,然后执行以下操作
copyActionChain.key_down(Keys.COMMAND).send_keys('C').key_up(Keys.COMMAND)
但是,突出显示的文本不会被复制。
最佳答案
要在 Mac 和 PC 上执行此操作,您可以使用这些备用键盘快捷键进行剪切、复制和粘贴。请注意,其中一些在物理 Mac 键盘上不可用,但可以使用旧键盘快捷键。
在 Mac 上用于剪切、复制和粘贴的备用键盘快捷键
如果这不起作用,请改用 Keys.META,这是替换命令 ⌘ key 的官方 key
来源:https://w3c.github.io/uievents/#keyboardevent
这是一个功能齐全的示例:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
browser = webdriver.Safari(executable_path = '/usr/bin/safaridriver')
browser.get("http://www.python.org")
elem = browser.find_element_by_name("q")
elem.clear()
actions = ActionChains(browser)
actions.move_to_element(elem)
actions.click(elem) #select the element where to paste text
actions.key_down(Keys.META)
actions.send_keys('v')
actions.key_up(Keys.META)
actions.perform()
所以在 Selenium (Ruby) 中,这大致类似于选择元素中的文本,然后将其复制到剪贴板。# double click the element to select all it's text
element.double_click
# copy the selected text to the clipboard using CTRL+INSERT
element.send_keys(:control, :insert)
关于selenium - 使用 Selenium 2 执行复制和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750447/