@@ -96,9 +96,9 @@ public static Task<int> ExecuteDevToolsMethodAsync(this IBrowser browser, int me
96
96
/// which may be empty.</param>
97
97
/// <returns>return a Task that can be awaited to obtain the assigned message Id. If the message was
98
98
/// unsuccessfully submitted for validation, this value will be 0.</returns>
99
- public static Task < int > ExecuteDevToolsMethodAsync ( this IWebBrowser chromiumWebBrowser , int messageId , string method , IDictionary < string , object > parameters = null )
99
+ public static Task < int > ExecuteDevToolsMethodAsync ( this IChromiumWebBrowserBase chromiumWebBrowser , int messageId , string method , IDictionary < string , object > parameters = null )
100
100
{
101
- var browser = chromiumWebBrowser . GetBrowser ( ) ;
101
+ var browser = chromiumWebBrowser . BrowserCore ;
102
102
103
103
return browser . ExecuteDevToolsMethodAsync ( messageId , method , parameters ) ;
104
104
}
@@ -109,9 +109,9 @@ public static Task<int> ExecuteDevToolsMethodAsync(this IWebBrowser chromiumWebB
109
109
/// </summary>
110
110
/// <param name="chromiumWebBrowser">the chromiumWebBrowser instance</param>
111
111
/// <returns>DevToolsClient</returns>
112
- public static DevToolsClient GetDevToolsClient ( this IWebBrowser chromiumWebBrowser )
112
+ public static DevToolsClient GetDevToolsClient ( this IChromiumWebBrowserBase chromiumWebBrowser )
113
113
{
114
- var browser = chromiumWebBrowser . GetBrowser ( ) ;
114
+ var browser = chromiumWebBrowser . BrowserCore ;
115
115
116
116
return browser . GetDevToolsClient ( ) ;
117
117
}
@@ -123,6 +123,8 @@ public static DevToolsClient GetDevToolsClient(this IWebBrowser chromiumWebBrows
123
123
/// <returns>DevToolsClient</returns>
124
124
public static DevToolsClient GetDevToolsClient ( this IBrowser browser )
125
125
{
126
+ WebBrowserExtensions . ThrowExceptionIfBrowserNull ( browser ) ;
127
+
126
128
var browserHost = browser . GetHost ( ) ;
127
129
128
130
WebBrowserExtensions . ThrowExceptionIfBrowserHostNull ( browserHost ) ;
@@ -135,5 +137,41 @@ public static DevToolsClient GetDevToolsClient(this IBrowser browser)
135
137
136
138
return devToolsClient ;
137
139
}
140
+
141
+ /// <summary>
142
+ /// Set the Document Content for the Main Frame using DevTools Protocol.
143
+ /// </summary>
144
+ /// <param name="chromiumWebBrowser">ChromiumWebBrowser instance</param>
145
+ /// <param name="html">html</param>
146
+ /// <returns>Task that can be awaited to determine if the content was successfully updated.</returns>
147
+ public static Task < bool > SetMainFrameDocumentContentAsync ( this IChromiumWebBrowserBase chromiumWebBrowser , string html )
148
+ {
149
+ var browser = chromiumWebBrowser . BrowserCore ;
150
+
151
+ return browser . SetMainFrameDocumentContentAsync ( html ) ;
152
+ }
153
+
154
+ /// <summary>
155
+ /// Set the Document Content for the Main Frame using DevTools Protocol.
156
+ /// </summary>
157
+ /// <param name="browser">the browser instance</param>
158
+ /// <param name="html">html</param>
159
+ /// <returns>Task that can be awaited to determine if the content was successfully updated.</returns>
160
+ public static async Task < bool > SetMainFrameDocumentContentAsync ( this IBrowser browser , string html )
161
+ {
162
+ WebBrowserExtensions . ThrowExceptionIfBrowserNull ( browser ) ;
163
+
164
+ using ( var client = browser . GetDevToolsClient ( ) )
165
+ {
166
+ var response = await client . Page . GetFrameTreeAsync ( ) . ConfigureAwait ( false ) ;
167
+
168
+ var frames = response . FrameTree ;
169
+ var mainFrame = frames . Frame ;
170
+
171
+ var setContentResponse = await client . Page . SetDocumentContentAsync ( mainFrame . Id , html ) . ConfigureAwait ( false ) ;
172
+
173
+ return setContentResponse . Success ;
174
+ }
175
+ }
138
176
}
139
177
}
0 commit comments