質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

3726閲覧

chromeでselenium-webdriverが起動しない

jaaaaack

総合スコア38

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2018/04/03 20:14

npmでインストールしたselenium-webdriverとNode.jsを使ってchrome上で動くアプリを作っています。
プロジェクトと同じ階層に置いたchromedriverを

$ ./chromedriver

で起動させて、

$ node test.js

でtest.jsを起動させようとすると

/Users/Owner/Desktop/auto-sushida/node_modules/selenium-webdriver/lib/http.js:454 async execute(command) { ^^^^^^^ SyntaxError: Unexpected identifier

というエラーが出て、実行することができません。
どのようにすればこのエラーを修正することができるのでしょうか。

・test.js

js

1var webdriver = require('selenium-webdriver'); 2var driver; 3 4driver = new webdriver.Builder() 5.withCapabilities(webdriver.Capabilities.chrome()) 6.build(); 7 8driver.get('https://www.google.co.jp/').then(function(){ 9 driver.quit(); 10});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

/Users/Owner/Desktop/auto-sushida/node_modules/selenium-webdriver/lib/http.js:454 async execute(command) { ^^^^^^^ SyntaxError: Unexpected identifier

結論から言えば、恐らくNode.jsのバージョンが古いのが原因と思われます。

そもそもasyncというのは正式な構文ですので、本来構文エラーで弾かれるということはありません。
しかし、async構文はES2017というつい最近実装された構文なので、新しいNode.jsでなければ構文エラーで弾かれます。

下記のサイトによると、Node.jsのv7.10.1以降ならば対応しているようです。
async functions - Node.js ES2017 Support

Bash

1# バージョンを調べる 2$ node -v 3v7.2.1 # <- バージョン古いのでアウト

もしNode.jsの4系や6系を利用しているならば、
「そんな構文ないじゃないか!シンタックスエラー」となりますし、
それ以降のバージョンであれば「ああ、asyncね、構文OK」となるでしょう。


もしasyncに興味があるのでしたら、
「ES2017 async await」といった単語で検索してみてください。

ざっと解説しておくと、
JavaScriptの非同期処理のコールバック地獄を解消する手法です。
一度非同期になったものは同期処理に持って帰る事が出来ませんが、

ES2017で実装されたasyncやawaitを駆使すると、
まるで同期処理のように驚くほどスッキリしたコードで書けるようになります。

投稿2018/04/04 01:30

編集2018/04/04 01:34
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

このエラーはselenium-webdriverのライブラリのコードそのものが間違っていることによるものです.(通常, このような構文エラーが混入すること自体が珍しいので, その原因については判りませんが.)

  • selenium-webdriverを更新/再ダウンロードする
  • コードの当該部よりasyncを削除して様子を見る(正しく動作する保証がない)

の何れかを試してみて下さい.

投稿2018/04/03 21:24

defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問