0

我正在尝试查找特定的 web 元素:属于“selectDateTime”类并且位于标签“From”旁边的输入字段。实际上是 XPath 查询

//fieldset[legend="Pickup"]//div[@class="selectDateTime"]

创建此元素,但同一类的另一个元素出现在页面上。我尝试使用以下 XPath 查询选择第一个或最后一个元素

//fieldset[legend="Pickup"]//div[@class="selectDateTime"][1] (//fieldset[legend="Pickup"]//div[@class="selectDateTime"])[1]

但是在第一种情况下,查询找到了 2 个元素,在第二种情况下,查询不会产生结果。你知道,我该如何解决这个问题?可能是,你有解决办法吗?欢迎您提出您的想法。

这是解析的 XML:

[fieldset]
    [legend]
        Pickup
    [/legend]
    [div class="block block_position_first"]
        [div class="tr"]
            [div class="td"]
                [label]
                    From:
                [/label]
            [/div]
            [div class="td"]
                [div class="selectDateTime"]
                    [input class="date" type="text" placeholder="dd/mm/yyyy"/]
                    [input class="time" type="text" placeholder="00:00"/]
                [/div]
            [/div]
        [/div]
        [div class="tr"]
            [div class="td"]
                [label]
                    To:
                [/label]
            [/div]
            [div class="td"]
                [div class="selectDateTime"]
                    [input class="date" type="text" placeholder="dd/mm/yyyy"/]
                    [input class="time" type="text" placeholder="00:00"/]
                [/div]
            [/div]
        [/div]
    [/div]
[/fieldset]

发布 XML 文件存在一些问题,因此我将 < 和 > 分别替换为 [ 和 ]

4

1 回答 1

0

用于[1]第一个元素和[last()]最后一个元素。确保添加适当的括号,否则您将收到最后一步表达式每次运行的第一个或最后一个元素。

(//fieldset[legend="Pickup"]//div[@class="selectDateTime"])[1]
(//fieldset[legend="Pickup"]//div[@class="selectDateTime"])[last()]
于 2013-04-18T12:49:26.033 回答