:notを使うと特定の条件を満たしていないものをセレクトできる模様。
例:typeとidを指定しかつdisabledが付いていないボタン。
button[type="submit"][id="submit_1"]:not([disabled="disabled"])
2018年4月1日日曜日
puppeteerでうまく遷移できないことが有る
現状原因は不明だが遷移できないことが有る。。(再実行すると問題なく動いてしまったりする。。)
page.clickやelement.tapは成功しているようなのだがページ遷移しないという症状。
非ヘッドレスで動かしている際、この症状が出た状態で、ブラウザのウィンドウサイズをいじっていたら突如遷移できるようになったので、ブラウザ上でのページ表示サイズが関係している??
----
その後、エミュレートオプションを'iPhone 5'にしたら安定するようになった(それまでは'iPhone 6'にしていた)。
const pptrDevices = require('puppeteer/DeviceDescriptors');
var emulate_options = pptrDevices['iPhone 5'];
await page.emulate(emulate_options);
page.clickやelement.tapは成功しているようなのだがページ遷移しないという症状。
非ヘッドレスで動かしている際、この症状が出た状態で、ブラウザのウィンドウサイズをいじっていたら突如遷移できるようになったので、ブラウザ上でのページ表示サイズが関係している??
----
その後、エミュレートオプションを'iPhone 5'にしたら安定するようになった(それまでは'iPhone 6'にしていた)。
const pptrDevices = require('puppeteer/DeviceDescriptors');
var emulate_options = pptrDevices['iPhone 5'];
await page.emulate(emulate_options);
puppeteerで既存セッションを使って自動ログイン
ログイン処理も自動化したいが、画像を使った認証処理などが有るとid/pw自動入力だけでは自動ログインできない。。
が、puppeteer.launchのuserDataDirオプションを使えば、pc上に保存された既存クッキーなどを使用できる。
このオプションで適当なディレクトリを指定し、puppeteerを動かして一度手動入力でログインすると、指定したディレクトリ配下にクッキーなどが保存される。
以後このクッキーが使用されるので、ログイン処理をスキップできる。
登録:
投稿 (Atom)