NiFi-如何根据子元素的值获取特定的DOM元素

时间:2018-09-21 17:12:27

标签: java html css selenium apache-nifi

我正在尝试基于某种逻辑来获取一个ID(可能存在多个具有相同名称的ID,因为它的nifi使用angular / jquery)。例子

下面的逻辑

#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中的硒。

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

2 个答案:

答案 0 :(得分: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']

答案 1 :(得分:1)

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