gpt4 book ai didi

c# - 我的 Selenium IE 实例未为非管理员用户加载

转载 作者:太空狗 更新时间:2023-10-29 20:36:17 24 4
gpt4 key购买 nike

我用 C# 编写了一个应用程序来自动登录网页。

只要管理员运行可执行文件,它就可以完美运行。每当非管理员运行该项目时,就好像 IEDriver.exe 没有启动一样。从组策略启动 IEDriver.exe 没有任何限制。

private IWebDriver _driver;

public void SetUp()
{
InternetExplorerOptions options = new InternetExplorerOptions();
options.EnsureCleanSession = true;
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.RequireWindowFocus = true;
options.EnablePersistentHover = false;

var service = InternetExplorerDriverService.CreateDefaultService();
service.LibraryExtractionPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
//service.HideCommandPromptWindow = true;

_driver = new InternetExplorerDriver(service, options);
}

当我取消注释 LibraryExtractionPath 时,IEDriver 不会启动。

当我调试代码时。

 Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

指向正确的位置是

D:\PathToFolder\Project1\bin\Debug\

我认为问题是客户端(作为非管理员)无法启动 IEDriver.exe

更新:Internet Explorer 的保护模式未被禁用,which can prevent running IE Driver as a non-admin user .我可以使用 C# 代码和 IE 服务选项禁用它吗?

最佳答案

从你提供的路径来看

D:\PathToFolder\Project1\bin\Debug\

您正在尝试从 Visual Studio 编译驱动程序的位置运行该驱动程序。这可能不起作用的原因有几个。

当您在 Visual Studio 中设置和编译代码时,它会创建调试文件夹 ect 并使用当前用户的权限。这意味着该用户和管理员可以访问它,但没有其他人可以访问它。或者,如果这是作为管理员完成的,它可能只有管理员可以访问。

通常情况下,Visual Studio 和其他 IDE 也会有不同的工作目录,并根据您选择的构建选项将 exe 编译到不同的目录中。例如发布与调试。这意味着 exe 使用的 dll 等与 exe 不在同一个目录中。当您在 visual studio 中运行时,这不是问题,因为它会设置正确的工作目录并为您进行整理。在您的情况下,如果这是问题的一部分,那么它可能并不那么简单。这可能意味着任何必需的 dll 等都可能安装在管理员的路径中,但不适合普通用户。

这很可能是路径或权限问题。我建议使用 Dependency walker 之类的东西来查看 exe 的内容:http://www.dependencywalker.com/并确保所有用户都可以访问它们。

如果您以用户身份执行此操作,则该程序不适用于 dependency walker 将向您显示未找到哪些依赖项。

关于c# - 我的 Selenium IE 实例未为非管理员用户加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009636/

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