2016-12-09 6 views
4

Iやったこの:angular2 +セレンwebdriverを「解決できませんchild_process

ng new typescript-selenium-example 
npm install selenium-webdriver --save 

する

更新app.component.ts(加えて、私は私の/Applicationchromedriverをコピーした):

import { Component } from '@angular/core'; 
import { Builder, By, until } from 'selenium-webdriver'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    constructor() { 
    var driver = new Builder() 
    .forBrowser('chrome') 
    .build(); 

    driver.get('http://www.google.com/ncr') 
     .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver')) 
     .then(_ => driver.findElement(By.name('btnG')).click()) 
     .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000)) 
     .then(_ => driver.quit()); 
    console.log('hi'); 
    } 
    title = 'app works!'; 
} 

エラーを取得する:

ERROR in ./~/selenium-webdriver/net/portprober.js 
Module not found: Error: Can't resolve 'child_process' in '/Users/myname/tmp/typescript-selenium-example/node_modules/sele 
nium-webdriver/net' 
@ ./~/selenium-webdriver/net/portprober.js 20:11-35 
@ ./~/selenium-webdriver/chrome.js 
@ ./~/selenium-webdriver/index.js 
@ ./src/app/app.component.ts 
@ ./src/app/index.ts 
@ ./src/main.ts 
@ multi main 

ERROR in ./~/selenium-webdriver/firefox/binary.js 
Module not found: Error: Can't resolve 'child_process' in '/Users/myname/tmp/typescript-selenium-example/node_modules/sele 
nium-webdriver/firefox' 
@ ./~/selenium-webdriver/firefox/binary.js 25:14-38 
@ ./~/selenium-webdriver/firefox/index.js 
@ ./~/selenium-webdriver/index.js 
@ ./src/app/app.component.ts 
@ ./src/app/index.ts 
@ ./src/main.ts 
@ multi main 

ERROR in ./~/selenium-webdriver/io/exec.js 
Module not found: Error: Can't resolve 'child_process' in '/Users/myname/tmp/typescript-selenium-example/node_modules/sele 
nium-webdriver/io' 
@ ./~/selenium-webdriver/io/exec.js 20:21-45 
@ ./~/selenium-webdriver/remote/index.js 
@ ./~/selenium-webdriver/index.js 
@ ./src/app/app.component.ts 
@ ./src/app/index.ts 
@ ./src/main.ts 
@ multi main 

答えて

12

この問題は、私のテストの1つに悪いbeforeEachメソッドがあったときにも表示されました。この関数は、初期化される前に関数内のグローバル変数に到達しようとしていました。多分それがあなたを助けるでしょうか?

のコメントが指摘するように、あなたが悪いのインポートを持っている場合、これはまたのような、起こることができる:私は戻って取得する場合

import {describe} from 'selenium-webdriver'; 

または

import {beforeEach} from "selenium-webdriver/testing"; 
+0

ああ、私は、このいずれかのうち、長い間それに私はあなたの提案を投票しようとします。 – Jas

+1

あなたの提案に基づいて、私が修正した最後のテストセットをコメントアウトしました。あなたがチャンスを得たら、これを答えとして受け入れるべきです。 – jpoveda

+5

具体的には、Webstormが自動的に 'selenium-webdriver 'から' import {describe}'を追加したためです。それによってセリニウムが爆発する。誤ったインポートを削除すると、問題が解決します。 – jpoveda

関連する問題