Run javascript on HTML generated from C # string

I would like to run javascript on HTML generated from a C # line. (without opening a browser - only C # code)

Sort of:

string myHTML = '<div id="divTest">This is test<br/><br/></div>';

Javascript should be:

function test 
{
     return document.getElementById('divTest').offsetHeight;
}

What I have already tried is to check out some headless browsers like PhantomJS and Optimus, but they don't have the ability to display a string (only to open a webpage via a web address, for example http://google.com/). is it through c #?

+4
source share
1 answer

The following works for me:

string html = "<html><head></head><body><div id=\"divTest\">This is test<br/><br/></div></body></html>";

string script1 = "return document.getElementById('divTest').innerText";
string script2 = "return document.getElementById('divTest').offsetHeight";

var options = new PhantomJSOptions();
options.AddAdditionalCapability("javascriptEnabled", true);

var driver = new PhantomJSDriver(options);
driver.Url = "file://dummy.html";
driver.Navigate();
driver.ExecutePhantomJS("document.write('" + html + "');");

var test1 = driver.ExecutePhantomJS(script1);
//Returns: This is a test
var test2 = driver.ExecutePhantomJS(script2);
//Returns: 40

Selenium.WebDriver NuGet ex-phantomJS http://phantomjs.org/download.html, exe PATH.

+1

Source: https://habr.com/ru/post/1684762/


All Articles