当前位置: 首页 > 知识库问答 >
问题:

C#硒铬驱动程序无效--日志级别值。无法初始化日志记录

闾丘永春
2023-03-14

以下代码不起作用:

ChromeOptions op = new ChromeOptions {
    BinaryLocation = "./chromedriver.exe"
};
op.AddArguments("--disable-logging", "--headless", "--disable-gpu", "--no-sandbox", "--disable-dev-shm-usage");
ChromeDriver driver = new ChromeDriver(op);

错误:

OpenQA。硒。WebDriverException HResult=0x80131500消息=未知错误:Chrome无法启动:已被终止。(未知错误:DevToolsActivePort文件不存在)(从chrome位置启动的进程。/chromedriver.exe不再运行,因此chromedriver假设chrome已崩溃。)Source=WebDriver StackTrace:在OpenQA上。硒。遥远的RemoteWebDriver。在OpenQA上打开ThrownerRor(响应错误响应)。硒。遥远的RemoteWebDriver。在OpenQA上执行(字符串驱动程序CommandToExecute,Dictionary`2个参数)。硒。遥远的RemoteWebDriver。OpenQA上的StartSession(ICapabilities desiredCapabilities)。硒。遥远的RemoteWebDriver。。OpenQA的ctor(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities)。硒。铬。铬驱动。。OpenQA的ctor(ChromeDriverService服务、ChromeOptions选项、TimeSpan命令超时)。硒。铬。铬驱动。。WebScraper的ctor(ChromeOptions选项)。公用事业C:\Users\AB\Documents\Code\CSharp\WebScraper\WebScraper\WebScraper\WebScraper\Utility中的GetChromeBrowser(字符串二进制定位)。cs:WebScraper的第20行。程序d_0。C:\Users\AB\Documents\Code\CSharp\WebScraper\WebScraper\WebScraper\Systems\Program中的MoveNext()。政务司司长:7号线

最后一个控制台输出:

无效--日志级别值。无法初始化日志记录。退出。。。

我曾尝试使用这些参数禁用日志记录,但仍然不起作用。它说它需要一个“devtoolsativeport”文件,但我不确定如何获取该文件或将其放在哪里。我的selenium应用程序是否可以使用单独的浏览器,而不是使用已经安装在计算机上的浏览器?应用程序是否独立,而不是依赖外部安装?任何建议都会非常有用!

共有1个答案

商华藏
2023-03-14

我想出来了。我需要两个。exe文件,一个是Chrome驱动程序,另一个是Chrome浏览器。

安装Chrome,然后转到安装它的路径(通常是“C:\Program Files\Google”),复制整个“Chrome”文件夹并将其粘贴到应用程序目录中。这是Chrome浏览器。

然后,将ChromeOptionsBinaryLocation设置为粘贴的“chrome”文件夹中“chrome.exe”的路径。我的是:“./Chrome/Application/Chrome.exe”现在,“BinaryLocation”指向浏览器。

然后,使用ChromeDriverService创建ChromeDriverService。CreateDefaultService静态方法。将其指向包含驱动程序“chromedriver.exe”的文件夹。它必须指向驱动程序,而不是浏览器。

ChromeOptionsChromeDriver服务输入ChromeDriver构造函数,就可以了!

 类似资料:
  • 我对硒网格有问题。然后我试着连接到节点,我在节点端有一个错误。 通过这种方式运行hub: 我通过以下方式运行node: NodeConfig。json: 简化的Java代码: 在Java方面:一个长的stacktrace(我认为这个问题没有必要) 在节点端: java-jar。\selenium-server-standalone-3.141.59。jar-role节点-nodeConfig。\N

  • 在我的Java应用程序中,我使用SLF4J+Logback进行日志记录。我在开发环境中使用调试级日志记录,在生产环境中使用错误级日志记录。但是有一些消息我无论如何都想要记录下来,无论日志级别如何(类似于,但使用的是logger)。 有什么切实可行的方法可以实现这一点吗?我可以使用error或更低的级别,但我想做的是给出一些信息,所以在语义上是错误的,它不是错误。 我可以在我的中为我的类定义另一个记

  • 我正在使用Selenium3.4和FirefoxDriver(而不是marionette/GeckoDriver)为一个Java/Maven项目运行测试。我已经安装了Firefox45.9.0。我们的测试代码使用Log4j2,我可以将日志级别设置为任何我喜欢的级别,但是无论我将其设置为什么,我都会在控制台中得到如下所示的日志消息: 看起来FirefoxDriver内部或Firefox自身内部的某些

  • 问题内容: 我在docker中有以下设置: 应用程序(httpd) 流利的 elasticsearch 基巴纳 应用程序的日志驱动程序的配置描述了流利的容器。日志将保存在ES中,并显示在Kibana中。 当日志驱动程序配置为这种方式时,它可以工作: fluentd正在将其裸露的端口24224映射到主机的端口24224上。 但是我不想在主机网络上暴露我的流利。我想将其“私有”在docker网络内部(

  • 我使用Kubernetes作为cron作业运行python脚本。问题是,直到作业完成后,我才看到脚本的输出(可能需要一段时间才能运行)。我怀疑这是由于日志记录级别(--v选项)造成的,但在我的整个生命周期中,我都找不到它的文档(默认为--v=0)。如果我想增加输出内容的详细程度,是否有人知道“INFO”或“TRACE”的值(或者这些值是什么/定义在哪里)?提前谢谢你的帮助。 编辑:是否有人在Kub

  • SLF4J具有以下日志级别 JDK日志记录具有以下日志级别 如果我想将日志级别设置为DEBUG,那么该级别在JDK日志中不可用。谁能解释一下在这种情况下我们如何获得调试级别的日志记录。对于这种情况,我们需要做什么额外的配置吗? 已更新 这是我的属性文件配置 请让我知道我哪里错了。