我如何为 DOM at Javascript 与 puppeteer $x 评估选择器编写选择器?

How do I write a selector for DOM at Javascript vs. puppeteer $x eveluation selector?

我用过puppeteer(更多在:YT: Puppeteer Youtube Video WebSite) 并且可以使用 XPATH 为 $x 评估语句编写程序。

        const [WCPub]  = await page.$x('//*[@id="details"]/div/table/tbody/tr[3]/td');

但现在我还需要一个 querySelector 和一个选择器字符串。以下来自 XPATH 的传输不起作用。谁能告诉我基于 XPATH 的正确 querySelector 字符串?

        WCPub  = WCbookelement.querySelector('//*[@id="details"]/div/table/tbody/tr[3]/td');

我试过了:

 WCbookJson.BOOKPUB  =  WCbookelement.querySelector('#"details" div > table > 
                                                     tbody > tr[3] >td').innerHTML;

它是来自 Worldcat 的 Publication 字段:

但是得到选择器无效的错误。我哪里理解错了?

谢谢 沃尔特

您想删除您的 ID select 周围的双引号 (") 或并使用 :nth-child 来 select 正确的行索引。

但老实说,我认为您将 selector 从 xPath 转换为字面意思。你也可以只做 #details tr:nth-child(3) > td (取决于你的 html 结构)。

var text = document.querySelector('#details > div > table > tbody > tr:nth-child(3) > td').innerHTML;
console.log(text);
<div id="details">
  <div>
    <table>
      <tbody>
        <tr>
          <td>Row 1</td>
        </tr>
        <tr>
          <td>Row 2</td>
        </tr>
        <tr>
          <td>Row 3</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>