@H_404_2@
我想在从C#string生成的
HTML上运行
javascript.
(无需打开浏览器 – 只需C#代码)
(无需打开浏览器 – 只需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] 举报,一经查实,本站将立刻删除。