спасает день.
аюсь сделать простой щелчок на каком-то элементе страницы (например, BTN или ссылку).
Я написал 2 функции для нажатия через xpath и через селекторы CSS.
Обе эти функции прекрасно работают в консоли разработчика браузера, но частично не работают в CEF.
Код отлично кликает по простым ссылкам из Developer Console и из CefКод отлично нажимает на точную кнопку из консоли разработчика, но не нажимает кнопку из CEF. Это просто почему-то игнорировать ...Как это может быть? Код Js абсолютно такой же! ...
public void Click(string xpath)
{
var js = "document.evaluate(\"" + xpath + "\", document, null, XPathResult.ANY_TYPE, null).iterateNext().click();";
EvaluateJavascript(js);
}
public void ClickCss(string css)
{
var js = "document.querySelector('"+ css + "').click()";
EvaluateJavascript(js);
}
public async Task EvaluateJavascript(string script)
{
JavascriptResponse javascriptResponse = await Browser.GetMainFrame().EvaluateScriptAsync(script);
if (!javascriptResponse.Success)
{
throw new JavascriptException(javascriptResponse.Message);
}
}
используемый код клика:
_browser.ClickCss("#upload-container a");
еще раз: тот же самый js-код отлично работает в консоли разработчика браузера, но почему-то не работает в CEF.
Кстати, я тестировал код JS в Chrome. Так что WebEngine одинаков в обеих ситуациях.
PS: Также у меня будет работать симуляция перетаскивания какого-то конкретного файла к какому-то конкретному веб-элементу. Но я не нашел никакой информации об этом ни для Cef, ни для Js, ни для JQuery ... = (