0

我最近在学习 TOSCA 技能,2 年前我正在研究它并切换到 Selenium,我注意到新的 TOSCA 允许使用 Xpath 进行识别,我现在非常熟悉它,但是我无法让它工作在 TOSCA 中,我确信对象识别有效,因为我正在 google chrome 开发人员工具中测试我的 xpath。

像 (//*[text()='Forgot Password?'])[1] 这样简单的东西似乎不起作用。我会错过什么吗?

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

4

6 回答 6

1

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

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

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

"(//*[text()='Forgot your password?'])[1]"

在 Tosca 中使用 XPath 时要记住的一些事项:

  1. 似乎 XPath 表达式需要用双引号 (") 括起来,以便 XScan 知道何时开始评估 XPath 而不是使用其正常规则。仔细观察 XScan 启动时预生成的表达式,我们看到它被包裹在双引号:
"id('ui')/div[1]/div[1]/div[1]/a[1]"
  1. 有效的 XPath 表达式不一定保证唯一性,因此注意 XScan 底部的任何反馈消息是有帮助的。“未找到所选元素”和“所选元素不是唯一的”之间存在显着差异。前者只是表示 XScan 找不到匹配项,后者表示 XScan 匹配成功,但无法唯一标识元素。

  2. 我的经验是,它有助于明确识别元素以减少歧义的可能性。如果想法是针对锚元素以便测试单击链接,则将范围从任何元素(即“(//* [text()='忘记密码?'])[1]”缩小为仅匹配带有该文本“//a[text()='忘记密码?']”的锚元素。

  3. 一般来说,Tricentis(或至少与我交谈过的培训师)建议使用 XPath 以外的方法来识别目标(如果可用)。也就是说,根据我的经验,我使用 XPath 比使用“按锚识别”更幸运。

    • XPath 表达式在 XModuleAttribute 属性中可见且可编辑,无需重新扫描。就个人而言,我发现它比使用根据锚点识别时生成的 RelativeId 属性的 XML 值更容易使用。
    • 使用 Anchor,我遇到了在切换到另一个浏览器(特别是从 IE 到 Chrome)时无法再找到在一个浏览器中扫描的 XModuleAttributes 的问题。使用 XPath,我没有遇到这些问题。
  4. 虽然 XPath 可以很好地识别一个元素的属性和另一个元素的属性,因为它可以识别它们之间的关系(在 Angular 应用程序中非常常见),但通常可以通过使用TBox API调整引擎层来实现相同的目的(即构建自定义控件)。这需要开发人员资源预先进行一些初步工作,但它可以显着改进测试控制这些控件的方式,同时减少自动化专家对 XPath 的依赖。

于 2020-05-29T04:02:44.970 回答
0

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

详情请参阅手册

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

于 2018-04-20T06:38:36.777 回答
0

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

于 2018-04-19T13:58:59.780 回答
0

TOSCA 提供了多种方法来定位元素,就像 selenium 一样,此外它还将提供其他属性。在转换属性下,您将找到 x 路径,它将是绝对 x 路径,因为您知道硒,您知道绝对和相对 x 路径之间的区别. 我建议你一起去。1.通过ID 或名称 识别 2. 如果您的相对 x 路径不起作用,则通过锚点识别

于 2018-10-29T03:48:37.327 回答
0

Tosca 提供了一组属性来定位任何类型的元素。您可以直接选择要使元素唯一的任意数量的属性以及该元素的索引。只要确保您没有在该元素的“id”或“类名”中使用任何动态值,索引范围也不像 100 中的 20 那样大;它可能是十分之五,如果您将来需要更新它,这将很有帮助。还可以借助可以轻松定位的父元素,然后找到您期望的元素。

于 2018-05-22T10:56:46.550 回答
-1

尝试在右侧底部加载所有属性。但它没有点击就显示给我。看这里

于 2019-02-27T20:30:35.837 回答