在 Puppeteer 中不能 select 每页选项

Can not select per page option in Puppeteer

有类似的 发布,我将相同的技术应用于一个非常相似的案例。但是这个解决方案对我不起作用,我不知道是什么导致了错误。

这是每个 select 的 html source code:

<label class="control-label pull-right" style="margin-right: 10px; font-weight: 100;">

        <small>显示</small>&nbsp;
        <select class="input-sm grid-per-pager" name="per-page">
            <option value="https://www.mysite-com/admin/order?per_page=10" >10</option>
<option value="https://www.mysite-com/admin/order?per_page=20" selected>20</option>
<option value="https://www.mysite-com/admin/order?per_page=30" >30</option>
<option value="https://www.mysite-com/admin/order?per_page=50" >50</option>
<option value="https://www.mysite-com/admin/order?per_page=100" >100</option>
        </select>
        &nbsp;<small>条</small>
    </label>

由于这里的 select 不是原生 HTML 元素而是 bootstrap 元素,我选择使用 page.click。代码应该执行 1) 单击 select 元素并使选项可供选择,以及 2) 选择每页 100 个。这是我的代码:

  res = await Promise.all([
    page.waitForNavigation({waitUntil: 'load', timeout: 60000}),
    page.click('select[name="per-page"]'),  //<=== causing error
  ]);
  res = await Promise.all([
    page.waitForNavigation({waitUntil: 'load', timeout: 60000}),
    page.click('select[name="per-page"] > option:nth-child(5)'),
  ]);

错误是:

Error: No node found for selector: select[name="per-page"]
    at assert (C:\d\code\js\wbot\node_modules\puppeteer\lib\helper.js:259:11)
    at Frame.click (C:\d\code\js\wbot\node_modules\puppeteer\lib\FrameManager.js:704:5)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)  

尝试了不同的select或,例如

select.input-sm[name="per-page"]  
select.input-sm.grid-per-pager

但其中 none 有效。 selector 对我来说似乎是正确的,但它无法找到该元素。还尝试了 page.select 但效果不佳。我在这里缺少什么?

await page.waitForSelector('select[name="per-page"]')

等待元素出现在 select 之前。