空手道 UI:通过 CSS 定位文本
Karate UI: Locating text via CSS
我经常打空手道看不到的奇怪的可见页面文本,可能是由于一些我不完全理解的时髦 JS 魔法。
示例图片显示了点击翻译按钮后在页面上生成的文本:
我试图断言翻译后的文本在页面上存在且正确。
这是选择器:
#results-panel > div > div > div.thread > div > div.activity.panel.panel-default > div.panel-content > div > div:nth-child(2) > div:nth-child(1) > div > div.analysedText-翻译 > div > span:nth-child (3)
元素的示例片段:
使用通配符 {} 或 {^} 不起作用。例如 waitFor('{^}关于猫的一些随机事情') returns a null
我尝试了 CSS 选择器,并且能够使用以下方法突出显示文本:
- highlight('.analysedText-translation > div > span:nth-child(3)')[0]
我在想也许可以使用 waitForText 但不确定如何应用它。有什么建议吗?
文档没有过多讨论 CSS 选择器的原因是它是一个标准。顺便说一句,这是开源的,欢迎您贡献拉取请求以改进文档。
UI 自动化很难,我不会说任何框架都能使它神奇地变得容易。
建议:
- 如果还没有,请开始使用 VS Code 调试器,您可以在交互式控制台中键入
highlight('div.panel-content')
之类的内容,然后在页面上进行操作。在此处观看视频演示 (55:40) https://youtu.be/yu3uupBZyxc?t=3340
- 打开 Chrome devtools 控制台并输入类似
document.querySelector('div.panel-content')
的内容以查看匹配的内容
- 获取对任何父元素的引用,然后您就可以“遍历树”:https://github.com/intuit/karate/tree/master/karate-core#tree-walking
如果仍然卡住,请遵循此过程,以便我们可以在需要时修复框架中的任何内容:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
我经常打空手道看不到的奇怪的可见页面文本,可能是由于一些我不完全理解的时髦 JS 魔法。
示例图片显示了点击翻译按钮后在页面上生成的文本:
这是选择器: #results-panel > div > div > div.thread > div > div.activity.panel.panel-default > div.panel-content > div > div:nth-child(2) > div:nth-child(1) > div > div.analysedText-翻译 > div > span:nth-child (3)
元素的示例片段:
使用通配符 {} 或 {^} 不起作用。例如 waitFor('{^}关于猫的一些随机事情') returns a null
我尝试了 CSS 选择器,并且能够使用以下方法突出显示文本:
- highlight('.analysedText-translation > div > span:nth-child(3)')[0]
我在想也许可以使用 waitForText 但不确定如何应用它。有什么建议吗?
文档没有过多讨论 CSS 选择器的原因是它是一个标准。顺便说一句,这是开源的,欢迎您贡献拉取请求以改进文档。
UI 自动化很难,我不会说任何框架都能使它神奇地变得容易。
建议:
- 如果还没有,请开始使用 VS Code 调试器,您可以在交互式控制台中键入
highlight('div.panel-content')
之类的内容,然后在页面上进行操作。在此处观看视频演示 (55:40) https://youtu.be/yu3uupBZyxc?t=3340 - 打开 Chrome devtools 控制台并输入类似
document.querySelector('div.panel-content')
的内容以查看匹配的内容 - 获取对任何父元素的引用,然后您就可以“遍历树”:https://github.com/intuit/karate/tree/master/karate-core#tree-walking
如果仍然卡住,请遵循此过程,以便我们可以在需要时修复框架中的任何内容:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue