gpt4 book ai didi

selenium - Xpath选择器差异: pros and cons

转载 作者:行者123 更新时间:2023-12-03 00:55:35 29 4
gpt4 key购买 nike

我有两个 xpath 选择器可以找到完全相同的元素,但我想知道从代码、执行速度、可读性等角度来看哪一个更好。

第一个 Xpath :

//*[@id="some_id"]/table/tbody/tr[td[contains(., "Stuff_01")]]//ancestor-or-self::td/input[@value="Stuff_02"]

第二个 Xpath:

//tr[td[@title="Stuff_01"]]//ancestor-or-self::td/input[@value="Stuff_02"]

例如,争论是,如果页面的代码将被更改,例如某些 "tbody" 将被移动,那么第一个将无法工作,这是真的吗?那么,哪种代码变体更好,为什么?

我希望得到详细的答案,因为这对工作流程至关重要。

最佳答案

有可能这两种 XPath 都不理想。需要查看目标 HTML 和选择目标的描述来决定或提供其他替代方案。

此外,与所有性能问题一样,首先要进行衡量。

也就是说,性能不太重要,特别是如果您在进一步限制选择空间之前使用 @id 或其他 anchor 来磨练缩减的子树。

例如,如果文档中只有一个 elemid1234,则使用 //elem[@ id="1234"]/rest-of-xpath,您已经消除了文档的其余部分作为性能/可读性/鲁棒性问题。只要 elem 下面的子树相对温和(而且通常会如此),您就不会担心这些问题。

此外,是的,table//td 是抽象 tbody 是否存在的好方法。

关于selenium - Xpath选择器差异: pros and cons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264882/

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