首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Xpath标识Tosca中的对象

使用Xpath标识Tosca中的对象
EN

Stack Overflow用户
提问于 2018-04-18 20:59:35
回答 6查看 3.8K关注 0票数 0

我最近正在温习我在TOSCA中的技能,我在2年前就开始研究它,并切换到Selenium,我注意到新的TOSCA允许使用Xpath进行识别,我现在真的很熟悉它,但是,我不能让它在TOSCA中工作,我确信对象识别可以工作,因为我正在google chrome开发工具中测试我的xpath。

像(//*text()=‘忘记密码?’)1这样简单的东西似乎不起作用。我是不是漏掉了什么?

这是我在本例中用作参考的网页:https://www.freecrm.com/index.html

EN

回答 6

Stack Overflow用户

发布于 2020-05-29 12:02:45

XPath当然可以用来在Tosca中识别HTML的元素。

由于这个问题最初是发布的,所以“忘记密码?”https://www.freecrm.com/index.html上的链接似乎已更改,因此其文本现在为“忘记密码?”实际上位于https://ui.freecrm.com/。为了说明这一变化,这个答案使用了“(//*text()=‘忘记密码?’)1”,而不是原始帖子中提供的表达式。

通过文本修改,表达式在用双引号将元素括起来后,可以在XScan中标识该元素:

代码语言:javascript
复制
"(//*[text()='Forgot your password?'])[1]"

在Tosca中使用XPath时,请记住以下几点:

  1. 看起来XPath表达式需要用双引号(")括起来,以便XScan知道何时开始计算XPath,而不是使用它的常规规则。仔细观察XScan启动时预先生成的表达式,我们会发现它用双引号括起来:

代码语言:javascript
复制
"id('ui')/div[1]/div[1]/div[1]/a[1]"

  1. 有效的XPath表达式不一定保证唯一性,因此关注XScan底部的任何反馈消息都很有帮助。“未找到所选元素”和“所选元素不唯一”之间存在显著差异。前者简单地表示XScan找不到匹配,后者表示XScan匹配成功,但不能唯一地标识元素。
  2. 我的经验是,它有助于显式标识元素以减少歧义的可能性。如果这个想法是以锚元素为目标,以便测试单击链接,那么将范围从任何元素,即“(//* password?'".
  3. In ()=‘忘记密码?’)1”缩小到只匹配具有该文本的锚元素“//atext()=‘忘记你的文本一般,Tricentis (或者至少是与我交谈过的培训师)建议使用XPath以外的方法来识别目标,如果它们可用的话。也就是说,在我的经验中,使用XPath比使用“通过锚点识别”更幸运。

代码语言:javascript
复制
- An XPath expression is visible and editable in the XModuleAttribute properties without having to rescan.  Personally, I find it easier to work with than the XML value of the RelativeId property that is generated when using Identify by Anchor.
- With Anchor, I've had issues where XModuleAttributes scanned in one browser can no longer be found when switching to another browser, specifically from IE to Chrome.  With XPath, I've not had these issues.

  1. 虽然XPath可以很好地识别一个元素的属性和另一个元素的属性,因为它可以识别它们之间的关系(与Angular应用程序中的控件非常常见),但通常也可以通过使用TBox API调整引擎层(即构建自定义控件)来实现。这需要一些来自开发人员资源的前期工作,但除了减少自动化专家必须依赖XPath的需求外,它还可以显着改进测试如何控制这些控件。
票数 1
EN

Stack Overflow用户

发布于 2018-04-19 21:59:00

我所知道的是,在Tosca测试中处理XML消息时,您可以使用XPath来标识元素。您的用例似乎是UI测试,但我不确定这一点。

票数 0
EN

Stack Overflow用户

发布于 2018-04-20 14:38:37

您是否尝试过使用XScan来扫描页面?通常,Tosca会自动为您计算一个可以立即使用的XPath表达式。

请参阅manual for details

如果它仍然不能工作,请尝试更具体?什么不起作用?错误消息?意外的行为?...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49900389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档