CEF4のTChromiumは知らないのですいません。
私はTEdgeBrowserやWebView4Delphiを使っています。
これらはJavascriptを使うことができるのでXPathを使わなくても例えばDelphiから
WVBrowser1.ExecuteScript('console.log(document.body.innerText);', 1);
とJavascriptを送り込むと実行され、現在のコンテンツのテキストだけを取り出した結果がログに出力されます。
ログが出力されると DevToolsProtocolEventReceived から出力ログを取り出せます。(コンテンツのテキストだけ取り出せます)
procedure TForm1.WVBrowser1DevToolsProtocolEventReceived(Sender: TObject;
const aWebView: ICoreWebView2;
const aArgs: ICoreWebView2DevToolsProtocolEventReceivedEventArgs;
const aEventName: wvstring; aEventID: Integer);
var pwc:PChar;
json1,json2:TJsonValue;
begin
if aEventID=1 then
begin
//「コンソール」にメッセージが出力されたイベントが発生
//Memo1.Lines.Add('■console.logイベントが発生');
//イベント名"Console.messageAdded"が出力
//Memo1.Lines.Add(aEventName);
aArgs.Get_ParameterObjectAsJson(pwc);//jsonの値を取り出す
//Memo1.Lines.Add(pwc);
//jsonの値(message.text)を取り出す
json1:=TJSONObject.ParseJSONValue(pwc);
json2:=json1.GetValue('message');
Memo1.Lines.Add(json2.GetValue('text'));
end;
end;
同じようにCEF4のTChromiumでもJavascriptがDelphiから使えて出力結果を取り出せるのであれば、同じようにするのは如何でしょうか。
ご参考までTEdgeBrowserやWebView4Delphiの使い方の解説を以下URLに少しだけ作っています。
https://mam-mam.net/delphi/tedgebrowser.htmlhttps://mam-mam.net/delphi/tedgebrowser_webview4delphi.htmlとても外していたらすいません。
2025年2月8日土曜日 9:03:07 UTC+9 Kenji ITO: