使用C在PhantomJS中启用JavaScript#

使用C在PhantomJS中启用JavaScript#,javascript,c#,phantomjs,Javascript,C#,Phantomjs,我在C#应用程序中使用了PhantomJS,即使PhantomJSDriver.Capabilities.IsJavaScriptEnabled属性为true,它也不执行JavaScript。下面的简单页面仍然执行noscript标记的内容。如何让PhantomJS执行JavaScript 我已经通过NuGet将Selenium和PhantomJS添加到我的VS2012解决方案中: PM> Install-Package Selenium.WebDriver PM> Install

我在C#应用程序中使用了PhantomJS,即使PhantomJSDriver.Capabilities.IsJavaScriptEnabled属性为true,它也不执行JavaScript。下面的简单页面仍然执行noscript标记的内容。如何让PhantomJS执行JavaScript

我已经通过NuGet将Selenium和PhantomJS添加到我的VS2012解决方案中:

PM> Install-Package Selenium.WebDriver 
PM> Install-Package PhantomJS 
我创建了一个简单的HTML页面,以演示未启用JavaScript:

<html>
  <body>
    <a href="javascript:GoToAnotherPage()">Go to another page</a>
    <noscript>
      No JavaScript!
    </noscript>
  </body>
</html>

JavaScript在使用PhantomJS时默认启用。事实上,我不知道任何WebDriver在默认情况下启动浏览器时没有JavaScript

要确保启用了JavaScript,可以检查

var phantomDriver = new PhantomJSDriver();
var enabled = phantomDriver.Capabilities.IsJavaScriptEnabled;
您还可以通过截屏并检查noscript块是否实际未显示来实验性地检查JavaScript是否正在运行。因此,在您的示例中,当屏幕截图(
phantomDriver.GetScreenshot();
)为空时,它就工作了


顺便说一下,禁用PhantomJSDriver的JavaScript是个坏主意,因为WebDriver协议的许多操作都是用JavaScript实现的。禁用JS将有效地禁用驱动程序。

在使用PhantomJS时,默认情况下启用JavaScript。事实上,我不知道任何WebDriver在默认情况下启动浏览器时没有JavaScript

要确保启用了JavaScript,可以检查

var phantomDriver = new PhantomJSDriver();
var enabled = phantomDriver.Capabilities.IsJavaScriptEnabled;
您还可以通过截屏并检查noscript块是否实际未显示来实验性地检查JavaScript是否正在运行。因此,在您的示例中,当屏幕截图(
phantomDriver.GetScreenshot();
)为空时,它就工作了

顺便说一下,禁用PhantomJSDriver的JavaScript是个坏主意,因为WebDriver协议的许多操作都是用JavaScript实现的。禁用JS将有效地禁用驱动程序。

不应该执行JavaScript,它会获取浏览器上次加载的页面的源代码,因此它包含HTML文件中的所有内容

要查看页面的实际状态,请使用

phantomDriver.GetScreenshot();
不应该执行JavaScript,它获取浏览器上次加载的页面的源代码,因此它包含HTML文件中的所有内容

要查看页面的实际状态,请使用

phantomDriver.GetScreenshot();

我不知道如何获取您真正想要的内容,但定义为“获取浏览器上次加载的页面的源代码”。因此,它当然包括HTML文件中的所有内容。编辑了问题。正文部分中有一个链接,单击该链接可将您发送到另一个页面。之后,页面源不会更改。我以为这是JS的问题。。我是幻影新手。我使用过幻影驱动程序。GetScreenshot();它是空白的。所以这毕竟不是JS的问题。。谢谢如果你把它写在一个答案中,我会接受它。我不知道如何得到你真正想要的,但它被定义为“获取浏览器上次加载的页面的源代码”。所以它当然包括你HTML文件中的所有内容。编辑了问题。正文部分中有一个链接,单击该链接可将您发送到另一个页面。之后,页面源不会更改。我以为这是JS的问题。。我是幻影新手。我使用过幻影驱动程序。GetScreenshot();它是空白的。所以这毕竟不是JS的问题。。谢谢如果你写在答案里,我会接受的。嗨,谢谢你的回答。尽管你不是第一个提出解决方案的人,我还是接受了你的解决方案,因为另一个只是在评论中。嗨,谢谢你的回答。即使你不是第一个提出解决方案的人,我还是接受了你的,因为另一个只是在评论。