簡體   English   中英

從JavaScript調用C#中的方法

[英]Calling a method in c# from javascript

我正在使用硒的RemoteWebDriver和c#。 現在,我將javascript函數注入如下所示的頁面頂部

"window.__webdriver_javascript_errors = [];
                window.onerror = function(errorMsg, url, line) {
                window.__webdriver_javascript_errors.push(
                    errorMsg + ' (found at ' + url + ', line ' + line + ')');
                };";

它由fiddler代理注入,並將頁面上的javascript錯誤存儲到數組中。 然后,我可以使用IJavascriptExecuter提取此方法。

但是,除了這個,我想讓javascript在發現錯誤時自動調用ac#方法,以便我可以立即將其記錄下來。 有沒有辦法做到這一點?

由於WebDriver在外部運行且與瀏覽器進程無關,因此注入的JavaScript對自動過程的語言一無所知。 它們從根本上是斷開的,這完全是設計使然。 您可以在要自動化的應用程序的服務器端實現日志記錄功能,將錯誤推送到日志中; 或者您可以輪詢錯誤,將其從頁面中拉出。

可能有一些方法可以使您的代碼更簡單和透明。 您可能會考慮使用WebDriver.Support.dll程序EventFiringWebDriver實現。 它包裝了許多WebDriver API調用,並在調用方法之前和/或之后觸發事件。 您可以將JavaScript日志檢查放在這些事件的事件處理程序中,這對於您的測試代碼是透明的。 如果當前的實現不能滿足您的需求,則可以將該實現用作適合您的實現的模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM