gpt4 book ai didi

javascript - 使用 C# 在 PhantomJS 中启用 JavaScript

转载 作者:行者123 更新时间:2023-11-28 13:28:34 25 4
gpt4 key购买 nike

我在 C# 应用程序中使用了 PhantomJS,即使属性 PhantomJSDriver.Capability.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>

我使用过PhantomJSDriversrc 显示“无 JavaScript!”

public class Program
{
public static void Main(string[] args)
{
var phantomDriver = new PhantomJSDriver();
phantomDriver.Url = @"C:\page.html";
var src = phantomDriver.PageSource;
}
}

最佳答案

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

要确保 JavaScript 已启用,您可以检查

var phantomDriver = new PhantomJSDriver();
var enabled = phantomDriver.Capabilities.IsJavaScriptEnabled;

您还可以通过截图并检查 noscript block 实际上是否未显示来实验性地检查 JavaScript 是否正在运行。因此,当您的情况下屏幕截图 (phantomDriver.GetScreenshot();) 为空白时,它就可以工作。

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

关于javascript - 使用 C# 在 PhantomJS 中启用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27019484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com