【发布时间】:2014-10-26 13:08:06
【问题描述】:
我在使用量角器选择一些文本时遇到了一些真正的麻烦。
一点上下文;这是用于编写新闻文章的 AngularJS CMS 系统。我要突出显示的文本位于页面大部分的文本区域内。 Google Docs Document 是一个类似的应用程序。
使用 webdriver,我相信我可以简单地使用一些东西来达到这种效果:
browser.actions().keyDown(protractor.Key.CTRL).sendKeys('a').perform();
但是,我在 MAC 上编写代码,虽然目前我们的测试是在 SauceLabs 的 windows 盒子上运行的,但最终目标是迁移到 MAC 以模拟我们的用户。
我尝试了类似的代码行,但使用命令(或 CMD)但它不起作用,根据this post,OSX 不支持本机键事件。
我探索过的其他方法:
尝试在元素中单击三次以选择所有文本...但我无法让它工作(有什么帮助吗?)。这很复杂,因为鼠标光标必须在文本上方才能突出显示所有文本。
在我的本地计算机上的字段内双击可以选择文本区域中的最后一个作品,但在 SauceLabs 中,浏览器较小,因此可以选择不同的单词。这感觉太脆弱了,因为在大多数机器上都会有所不同。
将文本光标移动到文本区域的开头或结尾,按住 Shift 键并根据文本区域中的字符数按向左或向右箭头键。在此实现中,我无法将光标移动到文本字段的开头或结尾。
感谢阅读,我知道这篇文章有点长!如果您能想到一种我还没有想到的方法,或者一种编写三次单击或箭头键方法的方法,那将非常有帮助!
【问题讨论】:
-
'鼠标光标必须在文本上'你是否尝试过 mouseOver(element,offset),其中 offset = {x:somePixel,y:somePixel}?
-
嗨@nilsK,感谢您的回复。我认为(如果我错了,请纠正我),偏移量是否会以像素为单位,因此也取决于窗口大小?如果是这样,这将是一种非常脆弱的工作方式,因为它在大多数计算机上都会有所不同。另外,只是好奇,除了测试通过之外,您如何调试才能知道何时拥有正确的偏移量?
-
是的,偏移量以像素为单位,我猜这是个坏主意。我在悬停带有圆角的元素时遇到问题,2-3 像素的偏移量有帮助。不过可能对你没有帮助。无论如何,为了获得正确的偏移量,我使用 chrome 并且它的开发工具包含一个标尺;) F12 -> 单击“设置轮”-> 元素“显示标尺”
-
感谢@nilsK 的解释
标签: javascript angularjs selenium webdriver protractor