初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-02-19 07:38:30

nicknick
Guest

NodejsEvalServerでChrome操作

下記の商品ページでカラー・サイズを選択をして
「BUY IT NOW」をクリックしたいです。
https://www.naning9.com/shop/view.php?index_no=78114

puppeteer_lib 06 SelectOptionsBySelector の
Scrptにこのように記述しましたが上手く行きません。
どのように記述すればいいでしょうか?
またクリックについても教えて頂けますと助かります!><;

pptr.SelectOptionsBySelector('select[name="ops1"]',0, ['블랙(Black) ']);

#2 2023-02-19 08:57:41

himadanee
Guest

Re: NodejsEvalServerでChrome操作

購入操作を自動化するのは、内容を確認せずに購入することになって、危険すぎると思いますが。
ビジネスでやるなら、ブラウズ画面の操作でなくAPIを使うべきでしょう。(APIがないなら、そもそも自動化されることを想定されてないので人間が操作すべき)

#3 2023-02-19 17:25:43

qb_dp
Member

Re: NodejsEvalServerでChrome操作

changeイベントで、Selectorを指定後にJavaScriptを実行しているので一筋縄では いかないですね。
一応、以下で動作します。※検証少なめ。

const sleep = waitTime => new Promise( resolve => setTimeout(resolve, waitTime) );
(async() => {
//await pptr.BootBrowser();
await pptr.goto('https://www.naning9.com/shop/view.php?index_no=78114#');
await pptr.SetValueBySelector('#nops1', 0, '107023');
await sleep( 1000 );
await pptr.DoJavaScript("set_pans();");
await pptr.DoJavaScript("set_ops();");
await sleep( 1000 );
await pptr.SetValueBySelector('#nops2', 0, '61489');
await sleep( 1000 );
await pptr.DoJavaScript("set_pans();");
await sleep( 1000 );
await pptr.DoJavaScript("add_multi_nan('buy','MK_innerOptScroll');");
return 0;
})();

Offline

#4 2023-02-23 01:13:28

nicknick
Guest

Re: NodejsEvalServerでChrome操作

himadanee様
APIはないんです><
カートに入れるまでは自動化するのですが
実際に購入は手動と目視を入れますので
大きな間違いはないかと思っています^^

qb_dp様
教えていただきありがとうございます!
Scriptに貼り付けてFireを押して実行で合っていますでしょうか?
下記が返ってきます。

ReferenceError: pptr is not defined

「02 puppeteer page.goto URLを開く」は問題なく実行が出来ています。
どこが間違えていますでしょうか?
ご教授宜しくお願い致します!><;

#5 2023-02-23 10:03:56

qb_dp
Member

Re: NodejsEvalServerでChrome操作

FileMakerでGoogle Chrome を操作。Node.js ? puppeteer_lib
https://qbxxdp.blogspot.com/2020/09/fil … odejs.html

puppeteer_lib を使用してください。

puppeteer_lib 00 読み込み
puppeteer_lib 01 BootBrowser()
puppeteer_lib 02 pptr.goto(URL)
上記実行後に 提示のコードを実行してください。

Offline

#6 2023-03-02 02:14:51

nicknick
Guest

Re: NodejsEvalServerでChrome操作

無事に実行が出来ました!
ありがとうございます!><

カラー・サイズをvalueで指定しないといけませんが
「02 puppeteer page.goto URLを開く」では
valueを取得が出来ませんでした。
このvalueを取得する事は出来ますでしょうか?

#7 2023-03-02 08:56:51

qb_dp
Member

Re: NodejsEvalServerでChrome操作

以下で option タグの情報が取得できます。
※SIZEは、COLORを選択しないと取得できません。

COLOR

pptr.GetPropertyBySelector ('#nops1', 0 ,'innerHTML')

結果:

<option value="">--- 필수 옵션입니다 ---</option><option value="107023">블랙(Black) </option><option value="107024">그레이(Gray) </option><option value="107025">오트밀(Oatmeal) </option>

SIZE

pptr.GetPropertyBySelector ('#nops2', 0 ,'innerHTML')

結果:

<option value="">--- 필수 옵션입니다 ---</option><option value="61489">FREE </option>

Offline

#8 2023-03-03 09:17:05

nicknick
Guest

Re: NodejsEvalServerでChrome操作

取得できました!!
かなり便利ですね^^
もう少し使いこなせるように頑張ります。
ありがとうございました!

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 558.93 KiB (Peak: 582.01 KiB) ]