Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“组件未初始化”;nsresult:“;0xc1f30001(NS“未初始化错误”);Selenium GeckoDriver和Mozilla出错_Selenium_Mozilla_Geckodriver_Webdriverwait_Selenium Firefoxdriver - Fatal编程技术网

&引用;“组件未初始化”;nsresult:“;0xc1f30001(NS“未初始化错误”);Selenium GeckoDriver和Mozilla出错

&引用;“组件未初始化”;nsresult:“;0xc1f30001(NS“未初始化错误”);Selenium GeckoDriver和Mozilla出错,selenium,mozilla,geckodriver,webdriverwait,selenium-firefoxdriver,Selenium,Mozilla,Geckodriver,Webdriverwait,Selenium Firefoxdriver,我试图在Firefox中执行我的代码,有时它可以工作,但大多数时候我会遇到以下异常: [Exception... "Component not initialized" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: chrome://marionette/content/dom.js :: addEventListener :: line 67" data: no] 它发生在上周,之前对我

我试图在Firefox中执行我的代码,有时它可以工作,但大多数时候我会遇到以下异常:

[Exception... "Component not initialized"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: chrome://marionette/content/dom.js :: addEventListener :: line 67"  data: no]

它发生在上周,之前对我来说效果很好。

似乎你正在遭受痛苦,你可以尝试以下解决方法:

  • 将Selenium client library更新至最新版本,目前为止,最好使用包管理系统,如或,因为可能需要更新依赖项库。如果您不使用Java,请参阅本文,了解不同Selenium客户端语言(如JavaScript、Python、C#等)的代码示例

  • 请确保使用最新版本的

  • 请确保使用最新版本的
  • 如果你还将遇到问题,你可以考虑在Geckodriver项目中提出一个建议,准备尽可能多地提供信息(同样适用于下一个问题,如果有的话)

    类似于使用尚未初始化的组件或对象的尝试。这些组件通常提供一个初始化方法,通常称为

    Init
    ,必须在使用任何其他方法之前调用该方法

    但是,此错误消息

    [Exception... "Component not initialized"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: chrome://marionette/content/dom.js :: addEventListener :: line 67"  data: no]
    
    …意味着木偶节点在调用
    addEventListener
    时抛出了一个错误,如
    dom.js

    您的代码试用和相关的测试将帮助我们以更好的方式调试该问题。然而,
    addEventListener
    似乎调用得太早,甚至在完全呈现之前。更具体地说,甚至在浏览器客户端(即Web浏览器)达到
    “document.readyState”
    等于
    “complete”
    之前,就调用了
    addEventListener
    。通常,一旦满足此条件,将执行下一行代码


    解决方案 一个快速解决方案是,在尝试与新加载网页上的任何元素交互之前,您需要诱导WebDriverWait执行以下任一操作:

    一个例子
    • Python:

      • 代码块:

        driver.get("https://stackoverflow.com");
        WebDriverWait(driver, 10).until(EC.title_contains("Stack"))
        print("Page Title is : "+driver.title)
        
        driver.get("https://stackoverflow.com");
        new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Stack"));
        System.out.println("Page Title is : "+driver.getTitle());
        
      • 控制台输出:

        Page Title is : Stack Overflow - Where Developers Learn, Share, & Build Careers 
        
        Page Title is : Stack Overflow - Where Developers Learn, Share, & Build Careers 
        
    • 爪哇:

      • 代码块:

        driver.get("https://stackoverflow.com");
        WebDriverWait(driver, 10).until(EC.title_contains("Stack"))
        print("Page Title is : "+driver.title)
        
        driver.get("https://stackoverflow.com");
        new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Stack"));
        System.out.println("Page Title is : "+driver.getTitle());
        
      • 控制台输出:

        Page Title is : Stack Overflow - Where Developers Learn, Share, & Build Careers 
        
        Page Title is : Stack Overflow - Where Developers Learn, Share, & Build Careers 
        

    其他考虑事项
    • 将JDK升级到最新级别
    • 将硒升级到当前水平
    • 将GeckoDriver升级至标高
    • 确保您使用的二进制文件的版本是可兼容的
    您可以在中找到详细的讨论

    • 壁虎河位于所需位置
    • GeckoDriver对非root用户具有可执行权限
    • 将Firefox版本升级到Firefox v69.0级别
    • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
    • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
    • 重新启动系统
    • 以非root用户身份执行
      测试
    • 始终在
      tearDown(){}
      方法中调用
      driver.quit()
      ,以优雅地关闭和销毁Web驱动程序和Web客户端实例

    工具书类 您可以在以下内容中找到一些相关讨论:

    • [org.openqa.selenium.WebDriverException:

    奥特罗

    在我的案例中,一些配置错误。我试图阻止弹出式下载,但出现了一些错误。以下是我必须删除的代码,它有效(在这个特定案例中):