2017-10-02 1 views
7

iframeの内側にあるフォームに記入する必要があります。こちらはsample pageです。私は単にpage.focus()page.type()を使ってアクセスすることはできません。私はconst formFrame = page.mainFrame().childFrames()[0]を使用してフォームのiframeを取得しようとしましたが、実際にはフォームのiframeとやり取りできません。代わりにiFrameと型の内側に取​​得する方法を考え出すの人形 - どのようにiframeの内側にあるフォームに記入しますか?

+0

で助けるべき簡単なスクリプトです問題が見えなくても助けてください。 –

+0

http://www.goodmanmfg.com/product-registrationここにウェブサイトがあります。私はこのウェブサイトを自動入力し、多くのシリアル番号を自動的に登録したいと思います。 – Raza

+0

ページが重すぎます(約6.6 MB)。あなたが使っている人形のバージョンは? –

答えて

5

は、私が直接、上記URLにアクセスして、自動化しようと直接

https://warranty.goodmanmfg.com/registration/NewRegistration/NewRegistration.aspx?Sender=Goodman

、スクリプトを作るのIFrame URLに移動して、問題を単純化します単純なアプローチがあなたのために動作しませんでしたので、私たちは目でそれを行うフレーム

を使用して:、それは

編集-1を動作するはずです電子フレーム自体の下

はあなたが

const puppeteer = require('puppeteer'); 
(async() => { 
    const browser = await puppeteer.launch({headless: false}); 
    const page = await browser.newPage(); 
    await page.goto('http://www.goodmanmfg.com/product-registration', {timeout: 80000}); 
    var frames = await page.frames(); 
    var myframe = frames.find(
     f => 
      f.url().indexOf("NewRegistration") > 0); 
    const serialNumber = await myframe.$("#MainContent_SerNumText"); 
    await serialNumber.type("12345"); 

    await page.screenshot({path: 'example.png'}); 

    await browser.close(); 
})(); 

を始める出力はページのルックのような、他にはないことをご検討ください何

Type serial

+0

私もそれを試しました。しかし、次のページでは、iframeとメインフレームとのやりとりを行います。 – Raza

+0

@Raza編集の回答 –

+0

@Razaを試してみてください。 –

関連する問題