Как вернуть HTMLDivElement в код Java

В Java project я используюBrowser, чтобы показать страницу. Я использовал JavaScript и сопоставленный метод Java для получения элемента из документа.

Мой JavaScript:

var button = document.getElementById(`actionButton`);

if(element != null)
   buttonFound(element);

button is a DivHtmlElement.

Сопоставленный метод Java buttonFound

ButtonFoundFunction(this, browser, "buttonFound"); 

… который расширяет BrowserFunctionи переопределенный метод

@Override
public Object function(Object[] arguments) {
    browser.execute(arguments[0] + ".click()");
}

Но метод functionне называется (?).

Я пытался вернуть не DivHtmlElementтолько простой идентификатор кнопки, как показано ниже JavaScript:

buttonFound(`actionButton`);

а затем при переопределенном functionвызове нажать

@Override
public Object function(Object[] arguments) {
    browser.execute("document.getElementById('" + arguments[0] + "').click();");
}

… и это работает, но это кнопка поиска по id два раза, первый в JavaScript, второй, когда вызов function.

Как вернуться DivHtmlElementк этому function?

РЕДАКТИРОВАТЬ

Первый JavaScript, который ищет кнопку:

var buttons = [];

var buttons[0] = document.getElementById(`actionButton`);

Второй JavaScript, который только выполнить нажмите на индекс:

function doClick(index){
   buttons[index].click();     
}

1 ответ

  1. As @I wrestled a bear onceговорит, что я не могу передать родной объект JS Java, поэтому я сделал то же самое по-другому.

    Когда JavaScript выглядит так:

    var buttons = [];
    
    var buttons[0] = document.getElementById(`actionButton`);
    

    для выполнения клика на Java достаточно кода:

    browser.execute("buttons[0].click()");
    

    Потому buttonsчто массив находится в Browserкэше SWT.