繁体   English   中英

如何在 Python 中使用 Selenium 获取内部带有动态部分的选择器?

[英]How to get selectors with dynamic part inside using Selenium with Python?

我的应用程序有很多内部有动态 ID 的选择器。 当该动态 ID 位于选择器的末尾时,我在每个选择器中使用[id^='staticPart'] 例如:

#tab-10 > svg > tspan

变成:

[id^='tab-'] > svg > tspan

我工作得很好,但我不知道如何处理这样的选择器:

#tab-t0-1

其中 0 是一个动态数字,其他一切都是静态的。 我正在尝试以下操作,但出现无效选择器错误:

[id^='tab-']-1

要标识具有动态id的元素,例如#tab-t0-1 ,其中0是动态数字,其他所有内容都是静态的,您可以使用带有以下通配符的cssSelector

  • ^ : 表示属性值

  • $ :表示属性值

因此,最细粒度的定位器将包括寻找初始字母tab-t结尾字母-1 的策略,并且应该是:

[id^='tab-t'][id$='-1']

参考文献

您可以在以下位置找到一些相关的详细讨论:

您至少可以将“开始于”和“结束于”选择器结合起来

[id^='tab-'][id$='-1']

但是,一般来说,根据这些id值的选择性, [id$='-1']部分可能不重要或没有区别,更直接的东西可能就足够了:

[id^=tab]

当然,这特定于您正在处理的特定标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM