Javascript 将innerText/textContent与变量内的值进行比较
我正在webscrape中使用噩梦.js,并尝试向带有特定文本的按钮添加一个id,以便我可以单击它,因为页面是用javascript动态生成的。下面的代码不起作用,因为出于某种原因,我无法在if语句的indexOf中使用变量Javascript 将innerText/textContent与变量内的值进行比较,javascript,html,web-scraping,nightmare,Javascript,Html,Web Scraping,Nightmare,我正在webscrape中使用噩梦.js,并尝试向带有特定文本的按钮添加一个id,以便我可以单击它,因为页面是用javascript动态生成的。下面的代码不起作用,因为出于某种原因,我无法在if语句的indexOf中使用变量 const噩梦=require('噩梦') 常量噩梦=噩梦({show:false}) const rp=要求(“请求-承诺”); const cheerio=需要(“cheerio”); var size=“9”; 噩梦 后藤先生('https://www.flight
const噩梦=require('噩梦')
常量噩梦=噩梦({show:false})
const rp=要求(“请求-承诺”);
const cheerio=需要(“cheerio”);
var size=“9”;
噩梦
后藤先生('https://www.flightclub.com/')
.type(“#搜索”,“air jordan 4 cactus jack\u000d”)
.等等(1000)
。单击(“.result缩略图”)
.评估(()=>{
var correctSize=document.getElementsByTagName(“按钮”);
对于(变量i=0;i-1)correctSize[i].id='thisone';
}
})
。单击('按钮[id=thisone]')
(完)
.catch(错误=>{
console.error('搜索失败:',错误)
})
变量不是您在节点范围内定义的变量,因为evaluate在浏览器范围内运行。您需要传递变量以进行如下计算
.evaluate((____size) => {
var correctSize = document.getElementsByTagName('button');
for (var i = 0; i < correctSize.length; i++) {
if (correctSize[i].textContent.indexOf(____size) > -1) correctSize[i].id = 'thisone';
}
}, (____size))
.evaluate((\uuuuu大小)=>{
var correctSize=document.getElementsByTagName(“按钮”);
对于(变量i=0;i-1)correctSize[i].id='thisone';
}
},((尺寸))
那就行了
假设您将变量命名为\uuuuuuuuuuuuu size