【问题标题】:puppeteer waitForSelector not working when passing a string variablepuppeteer waitForSelector 在传递字符串变量时不起作用
【发布时间】:2022-08-19 04:28:43
【问题描述】:

我正在使用 puppeteer 并且在传递变量时遇到 waitForSelector 问题。但是,在传递字符串本身时它可以正常工作。

**// Not Working Code**
let subDomain =  \'#yahya\\\\\\\\.infinitystudio\\\\\\\\.pk_lnkRemove\' 

await page.waitForSelector(subDomain )
await Promise.all ([
    page.waitForNavigation(),
    page.click(subDomain)
    ])`

**// Working Code**

`
await page.waitForSelector(\'#yahya\\\\.infinitystudio\\\\.pk_lnkRemove\')
await Promise.all ([
    page.waitForNavigation(),
    page.click(\'#yahya\\\\.infinitystudio\\\\.pk_lnkRemove\')
    ])`

Any clue what is wrong in this. 
  • 你为什么在这个字符串中使用反斜杠?很明显,字符串变量与工作代码不同。
  • 那是因为元素 id 有 . (句号)在里面。如果我不在工作代码中使用 \\\\,它根本不起作用。
  • 但是为什么变量版本的斜杠数量要翻倍呢? \\\\\\\\\\\\ 不同。是否将其保存在变量中无关紧要。您已更改选择器。
  • 当我只使用双 \\\\ 反斜杠时,输出字符串包含单,这很明显,因为它是一个转义序列字符。为了有 。在我的字符串中,我必须使用 \\\\ 并且为了在字符串中有 \\\\,我必须使用 \\\\\\\\.
  • 下面是 chrome 控制台的输出。 console.log(\'my string contains \\.\') my string contains . console.log(\'我的字符串包含 \\\\.\') 我的字符串包含 \\. console.log(\'我的字符串包含 \\\\\\\\.\') 我的字符串包含 \\\\.

标签: javascript node.js puppeteer


【解决方案1】:

[![我已经添加了代码的图片......你可以看到输出。你的输出字符串仍然与所需的不同。让我知道这是否清楚。

]1]1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多