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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

selenium

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

Q&A

解決済

1回答

6293閲覧

javascriptを実行するとReferenceError: Can't find variable: requireとなってしまいます

apeirogon0813

総合スコア117

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

selenium

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

0グッド

1クリップ

投稿2020/07/10 04:24

Electronにてseleniumを実行するべく、
まずはjavascriptのプログラムsample.jsをMAC上で

jsc sample.js

と実行したところ、

ReferenceError: Can't find variable: require

というエラーが出てしまいました。
これは'fs'を指しているのではなく、requireが無いと言われているのでしょうか。

よろしくお願いいたします。

javascript

1const fs = require('fs'); 2const { promisify } = require('util'); 3const webdriver = require('selenium-webdriver'); 4const { Builder, By, until } = webdriver; 5 6const capabilities = webdriver.Capabilities.chrome(); 7capabilities.set('chromeOptions', { 8 args: [ 9 '--headless', 10 '--no-sandbox', 11 '--disable-gpu', 12 `--window-size=1980,1200` 13 ] 14}); 15 16// awaitを使うので、asyncで囲む 17(async () => { 18 19 // ブラウザ立ち上げ 20 const driver = await new Builder().withCapabilities(capabilities).build(); 21 22 // Youtubeへ移動 23 await driver.get('https://www.youtube.com/'); 24 25 // 検索ボックスが表示されるまで待つ 26 await driver.wait(until.elementLocated(By.id('search')), 10000); 27 28 let base64 = await driver.takeScreenshot(); 29 let buffer = Buffer.from(base64, 'base64'); 30 31 // bufferを保存 32 await promisify(fs.writeFile)('screenshot.jpg', buffer); 33 34 // ブラウザ終了 35 driver.quit(); 36 37})();

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

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

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

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

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

guest

回答1

0

ベストアンサー

これは'fs'を指しているのではなく、requireが無いと言われているのでしょうか。

そのとおりです。jscコマンドはどのエンジンでしょうか?(JavaScriptコードの中身を見ると、Node.jsで実行すべきもののように見えます)

投稿2020/07/10 04:27

maisumakun

総合スコア146018

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

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

maisumakun

2020/07/10 04:37

Node.jsで実行してください。
apeirogon0813

2020/07/10 04:45

ありがとうございます。 無事実行することができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問