无法从PhantomJS中的本地文件加载html

时间:2015-04-09 15:30:04

标签: c# selenium phantomjs

使用Selenium和PhantomJS,我可以从运行在localhost上的服务器加载文件,如下所示:

_driver.Url = "http://localhost:52873/Home/Template";

_driverRemoteWebDriver的实例,它连接到在端口上运行的PhantomJS实例(使用--webdriver=9134启动)。我可以调用该HTML文件中定义的Javascript函数,如下所示:

var val = _driver.ExecuteScript("myFunction()");

但是,我想从本地文件系统而不是通过本地网络服务器加载它,所以我试过这样的事情:

_driver.Url = "file://c:/path/to/Home/template.html";

我没有错误,但是当我尝试执行html文件中定义的脚本时,它不起作用。它会抛出InvalidOperationException消息Can't find variable: myFunction。但是,如果我将_driver设置为ChromeDriver的实例,我可以看到页面加载,一切都按预期工作,使用httpfile协议。

我没有收到PhantomJS控制台窗口的其他信息,所以我真的不知道问题所在。我怀疑是因为某种原因PhantomJS只是没有加载页面。有什么想法吗?

此外,有没有办法使用.NET绑定selenium来访问控制台日志?我在我的html文件中添加了console.log("connected"),以便在页面加载后立即运行,但在从filehttp运行时,它不会回显到phantomJS控制台,所以没什么帮助。

1 个答案:

答案 0 :(得分:0)

看起来你错过了路径URI中的额外/。

_driver.Url = "file:///c:/path/to/Home/template.html";