1

Pyppeteerを使用して「火」を選択したいラジオボタンを持つdiv関数があります。ただし、これを実行しようとすると、試みたすべての試みが失敗します

分割

<div _ngcontent-xqm-c396="" class="ng-star-inserted">
<p-radiobutton _ngcontent-xqm-c396="" styleclass="radio-group__input" name="APPLICANT_TYPE" class="ng-untouched ng-valid ng-dirty">
<div class="radio-group__input ui-radiobutton ui-widget">
<div class="ui-helper-hidden-accessible">
<input type="radio" name="APPLICANT_TYPE" value="Corporate">
</div>
<div role="radio" aria-checked="true" class="ui-radiobutton-box ui-widget ui-state-default ui-state-active">
<span class="ui-radiobutton-icon ui-clickable pi pi-circle-on">
</span>
</div>
</div>
<label class="ng-star-inserted ui-radiobutton-label ui-label-active">Corporate</label>
<!---->
</p-radiobutton><validationmsg _ngcontent-xqm-c396="" _nghost-xqm-c395="" hidden="">
<!---->
</validationmsg>
</div>

私が使用する pyppeteer コマンド

await page.click("input[name='APPLICANT_TYPE']")

これは XPATH です:

//*[@id="lead_request_main_ui_applicant_type"]/div[2]/p-radiobutton/div/div[1]/input

これはJSパスです

document.querySelector("#lead_request_main_ui_applicant_type > div:nth-child(3) > p-radiobutton > div > div.ui-helper-hidden-accessible > input[type=radio]")

それらのいずれかがあなたを助けたら?私は過去2日間これを試してきましたが、成功しませんでした:-(

4

1 に答える 1

1

結局、これは Pyppeteer のバグのように見えます

それを回避するには、次の回避策を実行する必要がありました。

    foo = await page.querySelector('[value="Corporate"]')  # or any proper selector
    await page.evaluate('(element) => element.click()', foo)

おそらく、約 4 日間の労力を節約できます。

于 2021-02-14T16:03:21.930 に答える