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自动化方面的技能
答案 0 :(得分:0)
您已经很亲密,但是您不能像这样使用or
运算符。当您要具有多个谓词条件时使用它。如果您希望有多个可能的节点结果(例如您的示例),则可以使用管道|
运算符
//dl[dt/text()='MasterCard']/dd | //dl[dt/text()='Visa']/dd
//dl[dt/text()='MasterCard' or dt/text()='Visa']/dd
//dl[dt[text()='MasterCard' or text()='Visa']]/dd
第一个选项是:
给我一个dd
元素,它是一个dl
元素的直接子元素,其中一个带有文本“ MasterCard”的dt
元素
OR
一个dd
元素,它是dl
元素的直接子元素,其中一个dt
元素的文本为'Visa'。
第二个选项说:
给我一个dd
元素,它是一个dl
元素的直接子元素,其中一个带有文本'MasterCard'的dt
元素或“签证”。
第三个选项只是第二个选项的紧凑版本。
因此,尽管这两个选项都会为您提供相同的结果(在这种情况下),但性能可能会大不相同。基本上,使用管道运算符意味着您要进行多个搜索,而不是单个复杂的搜索。