【问题标题】:How to get selectors with dynamic part inside using Selenium with Python?如何使用 Selenium 和 Python 在内部获取具有动态部分的选择器?
【发布时间】:2018-09-09 23:06:48
【问题描述】:

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

#tab-10 > svg > tspan

变成:

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

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

#tab-t0-1

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

[id^='tab-']-1

【问题讨论】:

    标签: python python-2.7 selenium-webdriver


    【解决方案1】:

    用动态id 来识别元素,例如#tab-t0-1 其中 0 是动态数字,其他所有内容都是静态的,您可以将 cssSelector 与以下通配符一起使用:

    • ^ : 表示一个属性值

      开头
    • $ :表示一个属性值

      结尾

    因此,最精细的定位器将包括寻找首字母tab-t结束字母的策略>-1 应该是:

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

    参考文献

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

    【讨论】:

      【解决方案2】:

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

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

      不过,一般而言,根据id 值的选择性,[id$='-1'] 部分可能并不重要或没有区别,更直接的内容可能就足够了:

      [id^=tab]
      

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

      【讨论】:

        猜你喜欢
        • 2020-10-18
        • 2019-09-03
        • 1970-01-01
        • 2018-01-15
        • 1970-01-01
        • 2021-07-24
        • 1970-01-01
        • 2020-07-24
        • 2017-12-17
        相关资源
        最近更新 更多