如何编写相对路径表达式 (XPath) 以从以下屏幕截图中提取卡片详细信息?

How to write the relative path expression (XPath) to extract the Card Details from the following screenshot?

This is the image from google chrome

大家好,

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

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

我看到卡名一直在VISA和MasterCard之间交替,

我想知道下面的表达式是否可行

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

我能否使用 OR 运算符使表达式通用,以便它适用于 VISA 或 Master Card 两种情况?

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

你很接近,但你不能那样使用 or 运算符。当您想要有多个谓词条件时使用它。如果您想获得多个可能的节点结果(如您的示例),您可以使用管道 | operator

  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 元素的直接子元素,其中 dt 元素带有文本 'MasterCard'

dd 元素是 dl 元素的直接子元素,其中 dt 元素的文本为 'Visa'.

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

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

因此,虽然这两个选项会给您相同的结果(在本例中),但性能可能会大不相同。使用管道运算符基本上意味着您正在执行多个搜索而不是一个复杂的搜索。