







Linux、Debian、Ubuntu、プログラミング、ゲーム、各種プログラムの話題とキントレ、ダイエット、教育等
今回は、ヘッドレスモードでも巡回させています。
動画で使ったソースは以下
const puppeteer = require('puppeteer');
(async () => {
//const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
const browser = await puppeteer.launch({ headless: true, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
const page = await browser.newPage()
// const navigationPromise = page.waitForNavigation()
// await navigationPromise
await page.goto('http://localhost:3000/users')
await page.setViewport({ width: 1316, height: 632 })
await page.waitForSelector('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
await page.screenshot({path: 'test01-1.png'});
await page.click('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
await page.waitForSelector('body > a:nth-child(4)')
await page.screenshot({path: 'test01-2.png'});
await page.click('body > a:nth-child(4)')
await page.screenshot({path: 'test01-3.png'});
await browser.close()
})()
前回の動画のソースに、スクリーンショットを出力する部分を追加しております。
あと上のソースはヘッドレスモードのソースになっていて、表示させながら巡回したい時は
const browser = await puppeteer.launch({ headless: true .......
のtrue の部分を falseにすればOK!
本家
https://github.com/GoogleChrome/puppeteer
動画中にインストールしたChrome用アドオン
https://chrome.google.com/webstore/detail/katalon-recorder/ljdobmomdgdljniojadhoplhkpialdid/related
インストール手順(Ubuntu,Debianの場合)
#npmのインストール
sudo apt install npm
#作業ディレクトリにて
npm install puppeteer
動画中に上記アドオンを使って作成し手直ししたソース1
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
const page = await browser.newPage()
// const navigationPromise = page.waitForNavigation()
// await navigationPromise
await page.goto('http://localhost:3000/users')
await page.setViewport({ width: 1316, height: 632 })
await page.waitForSelector('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
await page.click('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
await page.waitForSelector('body > a:nth-child(4)')
await page.click('body > a:nth-child(4)')
await browser.close()
})()
動画中に作成したソースその2
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] });
const page = await browser.newPage();
let element, formElement, tabs;
// Original Katalon Recorder info - Command: open, Target: http://localhost:3000/users, Value:
await page.goto(`http://localhost:3000/users`, { waitUntil: 'networkidle0' });
// Original Katalon Recorder info - Command: click, Target: xpath=(.//*[normalize-space(text()) and normalize-space(.)='Show'])[3]/following::a[1], Value:
element = await page.$x(`(.//*[normalize-space(text()) and normalize-space(.)='Show'])[3]/following::a[1]`);
await element[0].click();
// Original Katalon Recorder info - Command: click, Target: link=Back, Value:
element = await page.$x(`//a[contains(text(),'Back')]`);
await element[0].click();
await page.waitForNavigation();
await browser.close();
})();
https://support.google.com/webmasters/answer/66357
ということで、こないだ作成したpuppeteerの動画マズイので消して、作り直します。
関連のブログの記事も申し訳ありませんが、作り直します。
よろしくお願い致します。
久しぶりに凄いなってなったw
web関係のプログラムにあんまり興味なかった時期長かっったからw。
Railsスゲー!
https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning
やったコマンド
# rails install
sudo apt install rails
# ファル生成
rails _5.2.2_ new hello_app
# ディレクトリに移動
cd hello_app
# サーバー起動
rails server
# ファイル変更して、hello worldと出力できるように2つのファイルを変更
vi app/controllers/application_controller.rb
vi config/routes.rb
# git 関係 ( 下のメールアドレス使ってません、適当です)
git config --global user.name "NM Max"
git config --global user.email nmmax@123abcsoft.com
# 初期化
git init
# カレントディレクトリ以下のファイルを監視対象に
git add -A
# コミット -m の後の文字はコメント
git commit -m "Initialize repository"
# ファイル足したら、全部のファイルを監視対象に
git add -A
# log確認
git log
# status確認
git status
https://railstutorial.jp/chapters/toy_app?version=5.1#cha-a_toy_app
やったコマンド
#もう夜遅いので、後日追記します。
どれが受けが良いかわかんないので、やってみて、受けたらそれを重視で行く感じかな?
環境はAWSのClould9を勧めているんだけど、それはやめて、Dockerを前から使いたかったので、Dockerでいってみようとおもってます。
Docker Ruby on Rails tutorial
でググってやると、古いタイプと新しいけど、SQLiteじゃなく、PostgreSQLを使う例がでてきました。新しい方を参考に、SQLiteを使うように変更して、やってみたいと思います。
最初の動画は、Docker使った環境構築かな?
今日はよる遅くなってしまったので、明日かな?
スマホアプリで、Bootstrap関係をいれてやった
動画が楽で、英語だけど、それみてます。
ちょっと英語なまってる気がするけど、比較的聞き取りやすい
アプリの方は以下のやつで、良い内容でやってて負担は少ないけど、スマホで文字打つのが非常に苦痛
https://play.google.com/store/apps/details?id=com.sololearn.csstrial&hl=ja
スマホに接続できるキーボード購入しようかな?
Begineかなにかのコース終わったら、勧誘されて、従ったら無料体験のあるアプリをインストールされて、課金する気ないからドキドキしながら、選択しなかった(無料体験も、課金も)
課金を禁止したいけど、課金禁止が設定としてできず、これやめてほしかった
指紋認証とパスワード認証で、ロックはできるけど、いかなる場合も課金無しの設定欲しいところだ
ということで、CSSとか、Bootstrap関係の動画も作るかも
MT4の動画を作るために色々調べていたのですが、Ruby on Rails もやることにしました。
どうやら非常に有名な英語の文書があるらしく、それを日本語に訳してくれてるサイトがあるので、そこの文書にしたがって色々やってるのを動画にしていくことにします。
https://railstutorial.jp/chapters/beginning?version=5.1
最初の方は関係ない、前置きで、前置きも相当ながい
https://railstutorial.jp/chapters/beginning?version=5.1#sec-up_and_running
ここらからようやく、環境構築っぽい
Ubuntuはパッケージになってるとは思うけど、どうなんだろ?
下のリンクのChromeのアドオンをつかって読み上げてもらうと楽にすすめれた(環境構築の前まで)