如何编写相对路径表达式(XPath)以从以下屏幕截图中提取Card Details?

时间:2019-02-06 13:44:42

标签: html xml html5 dom automationanywhere

This is the image from google chrome

大家好,

我正在尝试编写相对表达式(XPath)以从以下网站获取卡的详细信息

https://www.fakenamegenerator.com/gen-random-us-us.php

我看到卡名在VISA和万事达卡之间不断变化,

我想知道以下表达式是否可能

// dl [dt / text()='MasterCard'] / dd或// dl [dt / text()='Visa'] / dd

我可以使用OR运算符来使表达式通用,以便它既适用于VISA还是适用于万事达卡?

仅供参考,这是我正在练习的一个Automation Anywhere项目,旨在增强我在WEB自动化方面的技能

1 个答案:

答案 0 :(得分:0)

您已经很亲密,但是您不能像这样使用or运算符。当您要具有多个谓词条件时使用它。如果您希望有多个可能的节点结果(例如您的示例),则可以使用管道|运算符

  1. //dl[dt/text()='MasterCard']/dd | //dl[dt/text()='Visa']/dd
  2. //dl[dt/text()='MasterCard' or dt/text()='Visa']/dd
  3. //dl[dt[text()='MasterCard' or text()='Visa']]/dd

第一个选项是:
给我一个dd元素,它是一个dl元素的直接子元素,其中一个带有文本“ MasterCard”的dt元素
OR
一个dd元素,它是dl元素的直接子元素,其中一个dt元素的文本为'Visa'。

第二个选项说:
给我一个dd元素,它是一个dl元素的直接子元素,其中一个带有文本'MasterCard'的dt元素“签证”。

第三个选项只是第二个选项的紧凑版本。

因此,尽管这两个选项都会为您提供相同的结果(在这种情况下),但性能可能会大不相同。基本上,使用管道运算符意味着您要进行多个搜索,而不是单个复杂的搜索。