量角器:按住 Ctrl 单击

2024-03-07

我正在尝试使用 ctrl 单击连续元素来选择页面上的多个元素。 此功能在手动完成时工作正常,但我在使用量角器进行自动化时遇到了一些麻烦。

这是我的 ptor 函数:

this.selectElements = function (names) {
    for(var i = 0; i < names.length; i++){
        var parentElement = element(by.xpath('//div[@aria-label="select group ' + names[i] + '"]'));
        browser.wait(EC.presenceOf(parentElement), DEFAULT_WAIT_TIMEOUT);
        browser.actions()
            .mouseMove(parentElement).perform();
        browser.sleep(500);
        browser.actions().keyDown(protractor.Key.CONTROL)
            .click()
            .perform();
    }

因此,对于名称中的每个值,它都会获取 DOM 中的元素,将鼠标移到其上,休眠,然后按 Ctrl 键单击。

对六个元素调用该函数的结果如下,选择了以下元素:

  • the 单独第一个元素
  • the 单独第二
  • the 第三个与第二个
  • the 单独第四
  • the 第五与第四
  • the 单独第六

换句话说,它最多选择两个元素,然后取消选择所有元素并再次选择最多两个。 知道那里发生了什么吗?

附加问题:是否可以将这些操作直接发送到元素(而不是使用 browser.actions())?似乎只有键盘按键或鼠标操作可以发送到元素,但不能同时发送到元素(类似于 sendKeys().click())。


问题是,您通过调用执行每个循环的操作序列perform()方法。相反,您需要在循环中链接所有操作序列,然后最后执行它。尝试下面的例子,

this.selectElements = function (names) {
    var actionSequence = browser.actions().keyDown(protractor.Key.CONTROL);
    for(var i = 0; i < names.length; i++){
        var parentElement = element(by.xpath('//div[@aria-label="select group ' + names[i] + '"]'));
        actionSequence = actionSequence.mouseMove(parentElement).click();
    }
    actionSequence.perform();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

量角器:按住 Ctrl 单击 的相关文章

随机推荐

  • 如何仅使用按位运算符实现 Bitcount?

    任务是仅使用按位运算符实现位计数逻辑 我让它工作得很好 但我想知道是否有人可以建议一种更优雅的方法 仅允许按位运算 没有 如果 因为 等 int x 4 printf d n x 0x1 printf d n x gt gt 1 0x1 p
  • 查找我的应用程序中的所有 mongoid 模型名称

    有没有办法找到我的 Rails 应用程序中的所有 Mongoid 模型名称 我可以通过获取 app models 文件夹中的所有文件来找到所有模型 但我特别想要 mongoid 模型名称 您可以在 Mongoid 3 1 及更高版本中执行此
  • AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑

    好的 我有一个页面 上面有 5 个影片剪辑 按钮 当您将鼠标悬停在每一个上时 它们会亮起 OVER 状态 当您单击它们时 它们会展开 DOWN 状态 问题是 如果您展开了多个影片剪辑 处于 向下 状态 它们会重叠并且看起来很糟糕 我想对它们
  • 如何在 Flask 中获得用户对 cookie 的许可

    我有一个用 Flask 和 Flask Login 构建的网站 所以我知道它在某个时候会生成 cookie 但我的问题比这更基本 Flask 应用程序是否总是立即生成 cookie 如果没有 是否有任何工具可以让我识别应用程序的哪一部分在何
  • 为什么我的堆栈指针仅以 16 的倍数递增?

    使用以下 C 代码 void func int a 1 b 2 c 3 编译使用gcc S O o myfile c我得到输出 file myfile c intel syntax noprefix text globl func type
  • 在Python中将外部函数分配给类变量

    我试图将其他地方定义的函数分配给类变量 以便稍后可以在实例的方法之一中调用它 如下所示 from module import my func class Bar object func my func def run self self f
  • CLR是虚拟机吗?

    我读过一本提到 net 的书CLR 作为虚拟机 任何人都可以证明这一点吗 为什么我们在某些开发平台上需要虚拟机的概念 是否有可能开发一个完全面向对象且像 net一样强大的本机框架 没有虚拟机的框架 将 CLR 称为虚拟机的书是 专业 Net
  • 如何在 Bash 中将文件名中的填充数字清零?

    使用 Bash 重命名以下形式的文件的最佳方法是什么 foo1 foo2 foo1300 fooN 使用零填充的文件名 foo00001 foo00002 foo01300 fooN 这不是纯粹的 bash 但是使用 Perl 版本更容易r
  • 如何在 Java 中验证公钥和私钥对

    有没有一种方法可以在 java 中验证给定的私钥 例如某个 key 文件 是否与某个使用 RSA 算法的某个 pub 文件匹配的公钥 您可以通过以下方式验证密钥对是否匹配 创建一个挑战 足够长度的随机字节序列 signing的挑战私钥 验证
  • Blackberry:读取项目中打包的文本文件(更快)

    我尝试过这种方法 但对于稍大的文本文件来说 它确实很慢 有谁知道阅读项目中包含的纯文本文件的更好方法 有没有办法使用 FileConnection 使用信息组合找出答案 IOUtilities streamToBytes is 直接在输入流
  • 当涉及部分操作时,不会调用 PerformBatchUpdates 完成处理程序

    到目前为止 这里的代码片段几乎适用于NSFetchedResultsController UICollectionView 根据所提供的信息 https developer apple com videos play wwdc2018 22
  • JWT 身份验证,无需在每个请求上获取用户详细信息

    我正在 Spring Security 中实现 JWT 身份验证 我有预定义的角色 例如 普通用户 管理员等 我有以下令牌有效负载 sub nick iat
  • 优化 R 中的正则表达式以进行子字符串提取

    我对之前的答案有一个后续问题 可以在这里找到 R 中拆分不均匀字符串 可变子字符串和分隔符 https stackoverflow com q 69921210 3832970 总之 我想提取遵循以下模式的字符串中的粗体文本 sp Q2UV
  • beanstalkd 的统计数据/监视器/检查器

    有谁知道有一个可以监控 beanstalkd 队列的应用程序吗 我正在寻找一些可以显示管道和工作统计信息并允许您检查详细信息的东西 我对语言 平台并不是很挑剔 只是想在编写自己的语言 平台之前知道是否有可用的东西 所有这些以及至少另外两个都
  • Selenium chrome 驱动程序袜子代理配置

    我在为 Chrome 驱动程序设置袜子代理时遇到问题 Proxy proxy new Proxy proxy setProxyType Proxy ProxyType MANUAL proxy setAutodetect false pro
  • 为什么我无法以种子用户身份登录?

    我正在开发一个新的 ASP NET MVC 项目 使用存储在数据库中的个人帐户进行身份验证 这是我的类 每次测试时都会使用示例数据为数据库播种 public class DevelopmentInitializer DropCreateDa
  • getMinutes() 0-9 - 如何显示两位数字?

    var date 2012 01 18T16 03 var date new Date date console log date getMinutes console log date getMinutes length 这将返回 3 如
  • OS X 上的输入管理器

    我想知道 InputManager 是否仍然是 Leopard 的一部分 是否有一个很好的例子可以告诉我它有什么用处 InputManagers 在 Leopard 上仍然可用 except 它们需要位于本地域中 Library Input
  • 派生类不会重写具有不同签名的虚函数

    我有一个派生类 我希望其中一个函数覆盖其在基类中的版本 但具有不同的签名 简单的例子 include stdio h bool use foo false class Foo public virtual int func double x
  • 量角器:按住 Ctrl 单击

    我正在尝试使用 ctrl 单击连续元素来选择页面上的多个元素 此功能在手动完成时工作正常 但我在使用量角器进行自动化时遇到了一些麻烦 这是我的 ptor 函数 this selectElements function names for v