量角器-选择文本

马兹

我在使用量角器选择一些文本时遇到了一些麻烦。

一点背景;这是用于编写新闻文章的AngularJS CMS系统。我要突出显示的文本位于页面大部分区域的文本区域内。类似的应用程序是Google文档文档。

相信有了webdriver,我可以简单地使用一些东西来达到这种效果:

browser.actions().keyDown(protractor.Key.CTRL).sendKeys('a').perform();

但是,我在MAC上进行编码,尽管当前我们的测试是在SauceLabs的Windows框中运行的,但最终目标是迁移到MAC上以模拟我们的用户。

我尝试了类似的代码行,但是使用Command(或CMD),但是它不起作用,根据这篇文章,OSX不支持本机键事件。

我探索过的其他方法:

  1. 尝试在元素中单击三次以选择所有文本...但是我无法使它正常工作(有帮助吗?)。由于鼠标光标必须位于文本上方才能突出显示所有文本,因此使情况变得复杂。

  2. 在本地计算机上双击该字段可以选择文本区域中的最后一个作品,但是在SauceLabs中,浏览器较小,因此可以选择其他单词。使用起来感觉太脆了,因为在大多数机器上会有所不同。

  3. 将文本光标移动到文本区域的开头或结尾,按下Shift键并根据文本区域中的字符数按下向左或向右箭头键。在此实现中,我无法将光标移动到文本字段的开头或结尾。

感谢您的阅读,我意识到这有点长!如果您可以想到一个我还没有想到的方法或一种编码三次单击或箭头键方法的方法,那将非常有帮助!

马兹

好的,我设法通过使用.executeScript方法以编程方式选择文本来解决此问题。

这有点作弊,因为它无法模仿用户的交互,但是我找不到替代方法,因此被认为是可以接受的解决方法。

如果您对此感兴趣,请使用以下代码,这将在文本区域中选择第一段:

Article.prototype.selectFirstParagraph = function(driver) {
    driver.executeScript(function () {
        var range = document.createRange();
        range.selectNode(document.body.querySelector('.ui-rich-text-editor__input').firstChild);
        var sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);
        return sel;
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

量角器中的'$'选择器

来自分类Dev

复杂的量角器选择器

来自分类Dev

量角器条件选择器

来自分类Dev

复杂的量角器选择器

来自分类Dev

选择量角器中的特定选项

来自分类Dev

量角器:获取警报文本?

来自分类Dev

量角器如何从div获取文本?

来自分类Dev

从量角器中的Repeater获取文本

来自分类Dev

从模态获取文本:量角器/ Webdriver

来自分类Dev

从元素量角器数组获取文本

来自分类Dev

验证量角器中的文本值

来自分类Dev

量角器获取通知文本

来自分类Dev

在量角器的文本框中选择或键入文本的最简单方法?

来自分类Dev

量角器获取所有选择框(选项)值

来自分类Dev

量角器-如何选择高度嵌套的下拉元素?

来自分类Dev

如何用量角器选择单个元素

来自分类Dev

无法在量角器的下拉列表中选择隐藏的元素

来自分类Dev

量角器无法选择叠加层上的元素

来自分类Dev

量角器自动化:元素的选择

来自分类Dev

如何使用量角器选择组件元素?

来自分类Dev

量角器在下拉菜单中选择元素

来自分类Dev

量角器:测试各种格式的日期文本

来自分类Dev

量角器无法单击元素,但能够获取文本

来自分类Dev

在量角器的角度$超时期间获取元素的文本

来自分类Dev

包含任何文本的元素的量角器预期条件

来自分类Dev

如何检查是否在量角器的列中找到文本

来自分类Dev

如何在量角器中返回警报文本?

来自分类Dev

量角器:获取包含多个I标签的锚文本

来自分类Dev

在量角器中将元素文本转换为对象