selenium - 使用 Selenium 2 执行复制和粘贴

标签 selenium selenium-webdriver

有没有办法使用 Selenium 2 和 Python 绑定(bind)来执行复制和粘贴?

我已突出显示要复制的元素,然后执行以下操作

copyActionChain.key_down(Keys.COMMAND).send_keys('C').key_up(Keys.COMMAND)

但是,突出显示的文本不会被复制。

最佳答案

要在 Mac 和 PC 上执行此操作,您可以使用这些备用键盘快捷键进行剪切、复制和粘贴。请注意,其中一些在物理 Mac 键盘上不可用,但可以使用旧键盘快捷键。
在 Mac 上用于剪切、复制和粘贴的备用键盘快捷键

  • 剪切 => 控制+删除,或控制+K
  • 复制 => 控制+插入
  • 粘贴 => shift+insert,或 control+Y

  • 如果这不起作用,请改用 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/

    相关文章:

    python : no module named selenium

    python - 在代理服务器后面运行 selenium

    python - 如何打包和分发具有需要安装驱动程序的依赖项的 Python 项目?

    java - 设置selenium webdriver的默认执行速度

    python - 如何使用 Selenium Webdriver 在 Python 中执行软断言

    python - 在 Python 中使用 Selenium Webdriver 下载图像

    在 IE 中运行的 Selenium Webdriver 脚本在 Firefox 中挂起

    java - Selenium 网络驱动程序 : finding checkbox based on multiple row values

    linux - 无法在 linux 7 机器上启动 chromedriver

    c# - 无法使用 selenium webdriver 在 Windows 10 中启动 "Microsoft Edge"浏览器