Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Javascript 在NodeJs上运行Selenium_Javascript_Node.js_Selenium_Selenium Webdriver - Fatal编程技术网

Javascript 在NodeJs上运行Selenium

Javascript 在NodeJs上运行Selenium,javascript,node.js,selenium,selenium-webdriver,Javascript,Node.js,Selenium,Selenium Webdriver,这是我第一次尝试在windows7环境中的NodeJs上使用seleniumwebdriver。以下是我为使其发挥作用所做的努力: 已安装的NodeJs 7.5(由Selenium正式支持,如Git上所述) 使用npm 下载chromedriver.exe 2.27至“C:\Selenium Utilities\chromedriver” 将chromedriver添加到我的PATHasC:\Selenium Utilities\chromedriver 从Selenium Git页面添加了我的

这是我第一次尝试在
windows7
环境中的
NodeJs
上使用
seleniumwebdriver
。以下是我为使其发挥作用所做的努力:

  • 已安装的
    NodeJs 7.5
    (由Selenium正式支持,如Git上所述)
  • 使用
    npm
  • 下载
    chromedriver.exe 2.27
    “C:\Selenium Utilities\chromedriver”
  • chromedriver
    添加到我的
    PATH
    as
    C:\Selenium Utilities\chromedriver
  • 从Selenium Git页面添加了我的第一个测试:

    var webdriver = require('selenium-webdriver'),
            By = webdriver.By, until = webdriver.until;
    
    var driver = new webdriver.Builder()
        .forBrowser('chrome')
        .build();
    
    driver.get('http://www.google.com/ncr');
    driver.findElement(By.name('q')).sendKeys('webdriver');
    driver.findElement(By.name('btnG')).click();
    driver.wait(until.titleIs('webdriver - Google Search'), 1000);
    driver.quit();
    
  • 已尝试通过
    节点test.js运行测试

  • 因此,我得到的错误是(摘录):

    “…抛出新错误('不知道如何生成驱动程序:'+浏览器'

    错误:不知道如何生成驱动程序:C;您忘记调用了吗 使用服务器(url)?”


    我做错了什么?我需要运行一个单独的Selenium服务器才能运行这个吗?

    我觉得你的代码很好,所以我运行它来检查。我可以确认(在macOS Sierra上)

    看起来您可能需要延长页面标题的等待时间,但有时我发现加载Google的页面标题需要超过一秒钟的时间


    另一种选择是尝试托管服务,而不是设置您自己的selenium服务器。有多种可用的,我正是为了这个目的而做的。不需要任何设置-您可以立即开始编写测试。

    通过npm安装chromedriver

    npm install chromedriver --save-dev
    
    然后在js顶部添加chrome:

    var chrome = require('selenium-webdriver/chrome');
    
    最后,脚本:

    var webdriver = require('selenium-webdriver'),
            By = webdriver.By, until = webdriver.until;
            var webdriver = require('selenium-webdriver');
    
    var chrome = require('selenium-webdriver/chrome');
    
    var driver = new webdriver.Builder()
        .forBrowser('chrome')
        .build();
    
    driver.get('http://www.google.com/ncr').then(function(){
        driver.findElement(By.name('q')).sendKeys('webdriver');
        driver.findElement(By.name('btnK')).click();
        driver.quit();
    });
    

    chrome驱动程序版本和安装的chrome必须兼容。

    您解决了吗?如果从未使用过,为什么要使用'var chrome=require('selenium-webdriver/chrome')?