2

我相信我在从 Web API 服务运行 Selenium PhantomJS 驱动程序时遇到权限问题。我曾尝试通过各种管理员帐户模拟该服务,但我仍然遇到同样的错误。如何确定哪个配置文件引发错误?我通过打印 process.StandardOutput.ReadToEnd() 收到此错误

System.Configuration.ConfigurationErrorsException: Configuration system failed to  initialize
  ---> System.Configuration.ConfigurationErrorsException: An error occurred loading a configuration file: Access is denied.
  ---> System.Security.SecurityException: Access is denied.
   at System.Security.Principal.WindowsIdentity.SafeImpersonate(SafeTokenHandle userToken, WindowsIdentity wi, StackCrawlMark& stackMark)
   at System.Security.Principal.WindowsIdentity.SafeRevertToSelf(StackCrawlMark& stackMark)
   at System.Security.Principal.WindowsIdentity.Impersonate(IntPtr userToken)
   at System.Configuration.ClientConfigurationHost.Impersonate()
4

1 回答 1

2

这很奇怪,因为 Web Driver 不需要您动态更改配置文件。我想您正在尝试自己做所有事情:不要重新发明轮子,因为所有这些东西已经由 Selenium 支持类完成。

为了在 Web Api 中试用 WebDriver:

获得https://stackoverflow.com/标题的一个非常基本的方法可能是:

using OpenQA.Selenium;
using OpenQA.Selenium.PhantomJS;
...
public string Get()
{
    // c:\phantomjs contains phantomjs.exe
    // if blank, Web Driver will download the latest version
    IWebDriver driver = new PhantomJSDriver(@"c:\phantomjs");
    driver.Navigate().GoToUrl("https://stackoverflow.com/");
    string title = driver.Title;
    driver.Quit();
    return title;
}
  • 就这样 !

根据您的主机,支持类在尝试自行启动 phantomjs 时可能会遇到一些问题;只需将应用程序池标识更改为高级用户即可。

于 2013-09-12T07:52:09.777 回答