使用 Selenium 2 执行复制和粘贴

2024-01-07

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

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

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

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


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

Mac 上用于剪切、复制和粘贴的备用键盘快捷键

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

如果这不起作用,请改用 Keys.META,这是替代命令 ⌘ 键的官方密钥

source: https://w3c.github.io/uievents/#keyboardevent 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Selenium 2 执行复制和粘贴 的相关文章

随机推荐

  • 如何在 Visual Studio 2010 中从自定义属性表设置 PlatformToolset

    我现在正从 VS 2005 迁移到 VS 2010 其产品由少数解决方案组成 每个解决方案包含大量项目 我想利用属性表系统 以便我们的众多配置更容易维护 问题之一是我们想要使用 Windows SDK 7 1 因为我们需要 BaseClas
  • d3.interpolateGnBu 发生了什么

    所以我尝试使用 GnBu 配色方案制作连续的色标 d3 scaleSequential d3 interpolateGnBu domain 0 1 这适用于 d3 scaleSequential d3 interpolateViridis
  • AEM 6.0 Sightly 子节点

    我有一个关于使用 Sightly 访问组件子节点的问题 我有一个模板 它使用 data sly resource 引入基本图像组件 如下所示 div class div 我想做的是根据该图像组件是否实际具有图像集来更改 css 类 为此 我
  • Maven - 如何包含空目录

    默认情况下 在构建过程中 maven 会删除空目录 你知道是否可以在pom中指定一个参数来指示maven在生成的target test classes文件夹中包含空目录 根据这张票 MRESOURCES 36 http jira codeh
  • “DbContextOptionsBuilder”不包含“UseSqlServer”的定义

    我正在尝试使用 C 在 VS 2015 Pro 更新 3 中创建一个 Web API 并针对 NET Core 我正在关注本教程 https docs efproject net en latest platforms aspnetcore
  • Wireshark/tshark 中的 2 通道过滤器

    选项 Y 2 and R in tshark迷惑我很久了 看完说明书我才知道 Y用于单通滤波器和 2在 2 遍过滤器中 如果我们在第 1 遍过滤器结束之前无法获取一些信息 但我还是不明白有什么区别 2 Y blabla and 2 R ba
  • 合并后发出拉取请求的用户不会出现在贡献者列表中

    我有一个回购协议Test GitHub 通知我该用户woo27 谁分叉了我的仓库Test 已经做了一个pull request 这些是官方推荐的合并命令 见下面的截图 git checkout b woo27 master master g
  • 如果 contentedittable = false,如何更改内容样式?

    嘿 我创建了一个可以打开新对话框 一个额外的 HTML 页面 的插件 通过此对话框 用户有机会创建自己的格式模式 我想要什么 我需要一个带有只读文本区域的tinymce编辑器 没问题 但用户必须能够选择粗体 斜体 下划线 字体大小 字体系列
  • JPA 实体和 Hibernate 实体之间的区别

    当我用 Entity 注释一个类并尝试解决依赖关系时 我可以在两个不同的包 javax persistence Entity 和 org hibernate annotations Entity 之间选择包 javax包是JPA的entit
  • 如何从 Vue.js 中深度嵌套的子组件访问数据

    我正在使用 Vue js 构建一个界面 我有一个表格 该表格包含一个地址和其他杂项数据 所以我在Vue中创建了两个组件 UserData and UserAddress UserData包含一个实例UserAddress作为子组件 我想根据
  • $(document).ready 的不同形式

    我见过有人写 document ready function 和一些写作 function 有什么区别以及何时使用什么 是 jQuery 对象本身 它在被调用时实现了一大堆不同的接口 string 运行选择器或构造节点 domElement
  • 单个 CSV 文件中的多个分隔符

    我有一个 CSV 它有三个不同的分隔符 即 和 不同列之间 我如何使用Python解析这个CSV 我的数据如下 2017 01 24 05 19 30 0000 TRANSACTIONDelim secondUSER LOGINDelim
  • 将 iAd 框架和 AdSupport 框架添加到构建阶段 - Xcode 6

    在 Xcode 6 中 如何将 iAd 框架和 AdSupport 框架添加到构建阶段 我转到 构建阶段 页面 但我唯一的选择是添加 新复制文件阶段 新运行脚本阶段 和 新标头阶段 我想要输入的框架属于哪些框架 如何输入这些框架 您应该单击
  • 如何在机器上找到 regasm 位置

    我正在创建一个使用 regasm 将 NET 程序集注册到 COM 的安装程序 不同的客户端将在其计算机上安装不同的 Microsoft Net 版本 我需要提前知道高潮位置才能使用它 我应该只在以下位置寻找它还是还有其他可能的位置 C W
  • Python Regex - 检查大写字母和小写字母

    我正在尝试检查紧随其后的小写字母的大写字母 诀窍在于 在它之前会出现一堆垃圾大写字母和数字 例如 AASKH317298DIUANFProgramming is fun 正如你所看到的 有很多我们不需要的东西直接出现在我们需要的短语之前 P
  • 如何完全迭代 QStandardItemModel?

    我有一个 QStandardItemModel 我将其显示在 QTreeView 中 工作正常 为了突出显示相关行 我想突出显示其中的一些行 因此我有一个 QStringList 其中包含要突出显示的 QStandItem 的名称 QStr
  • 弹簧靴。无法找到“org.hibernate.SessionFactory”类型的 bean

    我似乎无法弄清楚为什么我的 Spring Boot 应用程序无法自动创建 SessionFactory 据我了解 它应该自动获取属性文件并能够创建会话工厂 bean 我需要将一些 Dao 类中的会话工厂与 hibernate 一起使用 但是
  • 应用程序中需要记录多少内容以及多少内容过多?

    只是想知道有多少人登录他们的应用程序 我见过这个 我通常喜欢使用错误日志 级别来记录任何异常 被应用程序捕获 我会用 INFO 日志级别为 第一级别 调试方案显示每当我 进入或退出方法 从那里我 使用DEBUG日志级别进行跟踪 详细资料 致
  • 在 Unix/Linux 中将文件移动到不同目录所需的权限[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想澄清所需的权限 以便将文件 A 从目录 B 移动到目录 C 我认为命令是 mv B A C A 名称不变 我认为需要以下内容是否正确
  • 使用 Selenium 2 执行复制和粘贴

    有没有办法使用 Selenium 2 和 Python 绑定执行复制和粘贴 我突出显示了要复制的元素 然后执行以下操作 copyActionChain key down Keys COMMAND send keys C key up Key