我如何在Javascript和puppeteer $ x eveluation选择器中编写DOM选择器?

问题描述 投票:-1回答:1

我用过木偶(更多信息请参见:YT:Puppeteer Youtube Video WebSite)并可以使用$ x评估语句的XPATH编写程序。

        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字段:

enter image description here但是会收到一个错误消息,表明选择器无效。我没有正确理解什么?

谢谢沃尔特

javascript selector puppeteer
1个回答
0
投票

您想删除ID选择器周围的双引号("),并使用:nth-child选择该行的正确索引。

但是老实说,我认为您已将选择器从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>
© www.soinside.com 2019 - 2024. All rights reserved.