【问题标题】:NiFi - How to grab specific DOM element based on value on child elementsNiFi - 如何根据子元素的值获取特定的 DOM 元素
【发布时间】:2018-09-21 17:12:26
【问题描述】:

我正在尝试根据某种逻辑获取一个 ID(可以有多个同名的 ID,因为它是一个使用 angular/jquery 的 nifi)。例如,

下面的逻辑

#connection-configuration-tabs-content
    #connection-settings-tab-content
        .settings-left
            .setting(2nd child)
                .setting-field
                    #connection-id (**GRAB**)
    #connection-details-tab-content
            #processor-source-name[title="ARCH_convertCSVToAvro"] (**if exist in this location**)
            #processor-destination-name[title="ARCH_convertAvroToORC"] (**and if exist in this location**)

我想根据#processor-source-name[title="ARCH_convertCSVToAvro"] 和#processor-destination-name[title="ARCH_convertAvroToORC"] 的定位器获取“connection-id”。 connection-id 值在不同的处理器源/目标名称之间有所不同,但我想根据处理器源/目标名称来获取那个特定的。

在这种情况下如何获取#connection-id?有没有办法这样做?我将在 Java 中使用 selenium。

目的:我需要在 nifi 中唯一地获取“连接”ID(例如成功/失败队列),而不具有基于先前和转发处理器名称的唯一名称(在我的流程中是唯一的)。

【问题讨论】:

  • 添加html。你想得到什么 id 或元素?
  • IMO,基于原始文本的 HTML 将帮助贡献者为您的问题构建一个经过充分研究的答案,而不是提供一个虚拟的操纵 HTML。

标签: java html css selenium apache-nifi


【解决方案1】:

试试下面的 xpath:

//*[@id='connection-configuration-tabs-content' and (.//*[@id='processor-source-name' and @title='ARCH_convertCSVToAvro'] or .//*[@id='processor-destination-name' and @title='ARCH_convertAvroToORC'])]//*[@id='connection-id']

【讨论】:

    【解决方案2】:

    您能否使用 Selenium 的 WebDriver API 根据条件动态选择该元素?您还可以调用 NiFi 的 REST API 来检索处理器上各种连接的连接 ID 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 2013-08-04
      • 2011-10-17
      相关资源
      最近更新 更多