微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在从C#string生成的HTML上运行javascript

@H_404_2@
我想在从C#string生成HTML上运行 javascript.
(无需打开浏览器 – 只需C#代码)

就像是:

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

Javascript应该是:

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

我已经尝试过检查一些无头浏览器,比如PhantomJS和Optimus–但它们没有渲染字符串的选项(只能通过http://google.com/这样的网址打开网页.有没有办法通过C#实现这一目标?

@H_404_2@

解决方法

以下是为我工作:

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并从http://phantomjs.org/download.html下载PhantomJS exe,它需要与您的exe或PATH位于同一文件夹中.

@H_404_2@ @H_404_2@
@H_404_2@
@H_404_2@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐