gpt4 book ai didi

html - 在 Selenium 中选择第 n 个 child

转载 作者:行者123 更新时间:2023-12-03 16:11:32 25 4
gpt4 key购买 nike

起初我的问题是关于为什么在选择 2 个表中的第二个时出现“Element//table[2] not found”错误。无效的 Xpath(使用 assertElementPresent 函数):

//table[2]
(//table)[2] (here I got error for wrong xpath)
//table[position()=2]
//table[last()] (here I got the first table)

但我终于找到了答案

$this->assertElementPresent("xpath=(//table)[2]");

所以现在我的问题是为什么最后一个语句有效而其他语句无效?为什么

$this->assertElementPresent("//table[1]");

在没有 xpath=... 的情况下可以正常工作吗?

PHP 5.5.7、PHPUnit 3.8、Selenium 2.37.0、MacOS 10.9.1

最佳答案

你的每一个表达的意思:

//table[2]

选择作为其各自父级的第二个表格元素子级的所有表格元素。

(//table)[2]

从所有表格元素的集合中选择第二项(这就是您要尝试执行的操作)。

//table[position()=2]

与第一个相同。 [number][position() = number]

的简写
//table[last()]

选择所有表格元素,它们是各自父项的最后一个表格元素子元素。

关于你的第二个问题,来自 Selenium documentation :

Without an explicit locator prefix, Selenium uses the following default strategies:
•dom, for locators starting with "document."
•xpath, for locators starting with "//"
•identifier, otherwise

(//table)[2] 不以 // 开头,这就是为什么没有 xpath= 表达式不被接受的原因>.

关于html - 在 Selenium 中选择第 n 个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com