【问题标题】:puppeteer page.click(<selector>) but could not find itpuppeteer page.click(<selector>) 但找不到
【发布时间】:2021-06-06 05:00:17
【问题描述】:

这个nodeJs登录后使用Puppeteer填充一个多页面的在线网站。其中一个页面有一个输入图像可供点击,但无法使用下面的代码点击它。请说明正确点击输入元素的原因和方法。

//server/main.js

  let submitLink = await page.$('input[src="/is/images/submitBtn.gif"]') //also tried  page.$('input[src=/is/images/submitBtn.gif]')
  await submitLink.click()
  
  Error:
   UnhandledPromiseRejectionWarning: Error: Node is either not visible or not an HTMLElement
W20210606-15:29:14.995(10)? (STDERR)     at ElementHandle._clickablePoint
 
<!-- here is the XPATH -->
<input type="image" name="action" src="/is/images/submitBtn.gif" value="submit" tabindex="7" title="submit" alt="submit">

也试过page.click(&lt;selector&gt;)无济于事,这里是选择器。

body &gt; table &gt; tbody &gt; tr:nth-child(3) &gt; td:nth-child(2) &gt; table &gt; tbody &gt; tr &gt; td &gt; form &gt; table &gt; tbody &gt; tr &gt; td &gt; table &gt; tbody &gt; tr:nth-child(10) &gt; td &gt; table &gt; tbody &gt; tr:nth-child(4) &gt; td:nth-child(1) &gt; input[type=image]

【问题讨论】:

    标签: javascript jquery puppeteer


    【解决方案1】:

    如果你试试这个会怎样:

      let submitLink = await page.$('input[src="/is/images/submitBtn.gif"]');
      await page.evaluate((submit) => { submit.click(); }, submitLink);
    

    有时elementHandle.click() 会因为更复杂的模拟算法而失败,而更简单的 Web API 可以工作。

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 2020-12-08
      • 1970-01-01
      相关资源
      最近更新 更多