cefsharp使用js,cefsharp使用時間長無法訪問頁面

本文目錄一覽:

什麼是cefsharp.browsersubprocess.exe嗎

是cefsharp谷歌程序密令,解除方法:

CefSharp調用 js。

CefSharp.WinForms.ChromiumWebBrowser wb;

ExecuteScriptAsync 方法使用方式與 js 的 eval方法一樣,異步執行,無返回值。

// xxx為js的方法名稱。

wb.ExecuteScriptAsync(“xxx()”);

// 為 js 的 變量jsVar賦值 ‘abc’

wb.ExecuteScriptAsync(“jsVar=’abc'”);

EvaluateScriptAsync 方法使用方式與 js 的 eval方法一樣,異步執行,有返回值。

TaskCefSharp.JavascriptResponse t = wb.EvaluateScriptAsync(“callTest2()”);

擴展資料:

Google Chrome的特點是簡潔、快速。GoogleChrome支持多標籤瀏覽,每個標籤頁面都在獨立的“沙箱”內運行,在提高安全性的同時,一個標籤頁面的崩潰也不會導致其他標籤頁面被關閉。此外,Google Chrome基於更強大的JavaScript V8引擎,這是當前Web瀏覽器所無法實現的。

另有手機版的Chrome瀏覽器,於2012年發布了Chrome瀏覽器移動版,提供IOS系統、安卓系統以及Windows Phone系統的Chrome瀏覽器,在保持瀏覽器原有特點的情況下。

實現了多終端使用瀏覽器,具有共享收藏歷史信息等功能,是手機瀏覽器的一次巨大突破。隨着Android系統的份額不斷擴大而市場佔有率不斷飆升。

c# cefsharp能不能像webbrowser那樣獲取到元素,修改這個元素的屬性呢

cefsharp新手慎用,用的是js代碼,可以獲取元素修改元素,但是使用js。

var frame = cb.GetMainFrame();

var task = frame.EvaluateScriptAsync(“(function() { return document.getElementsByTagName(‘input’)[0].value; })();”, null);

這段代碼你要充分利用py抓取到可靠信息,知道第一個input是什麼,而且有value屬性,不然就會報錯。

frame.EvaluateScriptAsync()允許你寫入js片段。

網頁抓捕當中我覺得這個還是靠譜的,現在C#有很多,webbrowser、webkitbrowser、geckofx、webkitsharp……都是些噱頭,一般的網頁都無法搞定。

py的webdriver和android的webview同出一轍,跟webkit一樣。

但是獲取信息是不行的,比如我要抓取哪個元素值,你老老實實先把decument對象獲取到,再抓。

C# 的cefsharp 里的ChromiumWebBrowser執行js

具體調用:

IBrowser browser = this._browser.GetBrowser();

if (browser.HasDocument)

{

IFrame mainFrame = browser.MainFrame;

var js = “var f= function A(){ return $(‘img’,$(‘#”+id+”‘));}; f();”;

var task = mainFrame.EvaluateScriptAsync(js, null);// “(function() { var body = document.body, html = document.documentElement; return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); })();”, null);

//執行腳本

//browser.MainFrame.ExecuteJavaScriptAsync(“document.getElementById(‘testid’).click();”);

//browser.MainFrame.ExecuteJavaScriptAsync(“document.getElementById(‘testid2’).value=’123′”);

task.ContinueWith(t =

{

if (!t.IsFaulted)

{//返回結果

var response = t.Result;

var result = response.Success ? (response.Result ?? “null”) : response.Message;

//html = result.ToString();

}

}, TaskScheduler.FromCurrentSynchronizationContext());

}

原創文章,作者:PWKW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147492.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PWKW的頭像PWKW
上一篇 2024-11-01 14:09
下一篇 2024-11-01 14:09

相關推薦

  • 打包後頁面空白的解決方案

    當我們在調試階段時,我們的app可能看起來完美無缺,但當我們進行打包時,在運行app時,我們可能會遇到白屏或空白的問題。在這篇文章中,我們將探討如何解決這種問題。 一、檢查文件路徑…

    編程 2025-04-29
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 2025-04-28
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 用vuefavicon管理你的頁面icon標籤

    一、什麼是vuefavicon vuefavicon是一種Vue.js插件,用於動態管理網站的favicon圖標。通常情況下,我們會將網站的icon標籤放置在html文檔的head…

    編程 2025-04-25
  • HTML編寫登錄註冊頁面

    一、HTML做一個登錄註冊頁面簡約 簡約風格一直是大家喜歡的設計風格,下面我們就從簡約風格角度來看HTML如何編寫登錄註冊頁面。 一個簡約的登錄註冊頁面不需要複雜的線條和花哨的背景…

    編程 2025-04-25
  • 深入探討uniapp內嵌HTML頁面

    一、HTML頁面的嵌入方式 1、使用`uni-web-view`原生組件嵌入HTML頁面在uni-app中,可以使用`uni-web-view`組件來嵌入HTML頁面。其中,`un…

    編程 2025-04-23
  • 用JSONResult實現頁面內容的高效顯示

    一、JSONResult是什麼 JSONResult是Struts2中一種特殊的返回類型,它將返回一個特定的JSON格式的數據,並且可以在前端頁面上進行高效的解析和渲染。它的使用非…

    編程 2025-04-23
  • Vue中使用this.$router.push切換路由時頁面不刷新的解決方法

    一、原因分析 在我們平時使用Vue開發項目時,經常會使用this.$router.push切換路由,從而實現頁面之間的跳轉。但是,有時候我們發現切換路由後,頁面並沒有進行刷新,這時…

    編程 2025-04-23
  • Vue進入頁面時函數調用

    一、什麼是Vue進入頁面時函數調用 Vue進入頁面時函數調用是指在Vue實例初始化時自動調用的函數,這些函數可用於初始化數據、執行異步請求、添加監聽器和其他一些編程任務。它們在Vu…

    編程 2025-04-22
  • HTML5中關閉當前頁面的常用方法

    一、使用window.close()方法 在HTML5中,可以使用window.close()方法關閉當前頁面。這個方法可以在當前頁面或者一個彈出窗口中使用。 在Chrome、Fi…

    編程 2025-04-13

發表回復

登錄後才能評論