Javascript Puppeter:通过HTML属性查找元素
本质上,我试图让Puppeter通过其属性数据表单字段值来查找此页面上的元素,该值必须等于244103310504090 这是按钮的HTML代码:Javascript Puppeter:通过HTML属性查找元素,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,本质上,我试图让Puppeter通过其属性数据表单字段值来查找此页面上的元素,该值必须等于244103310504090 这是按钮的HTML代码: <section class="fl-accordion-tab--content"> <div class="fl-product-size"> </button><button class="fl-product-size--item fl-product-size--item__is- selecte
<section class="fl-accordion-tab--content">
<div class="fl-product-size">
</button><button class="fl-product-size--item fl-product-size--item__is-
selected" type="button" data-form-field-target="SKU" data-form-field-base-css-
name="fl-product-size--item" data-form-field-value="244103310504090" data-form-
field-unselect-group="" data-testid="fl-size-244103310504-US-9" data-product-
size-select-item="244103310504090" data-form-field-selected="true">
<span>9</span>
</button></div>
</section>
9
我已经尝试了一些东西,但我似乎找不到解决方案,任何帮助都是感激的 查看木偶演员的角色,您需要为指定的属性构造一个元素选择器
的MDN文档说明了如何执行此操作:
const puppeter=require('puppeter');
puppeter.launch().then(异步浏览器=>{
const page=wait browser.newPage();
等待页面。转到('https://example.com');
//使用属性选择元素
常量元素=等待页面。$(“[data form field value=“244103310504090”]”);
// ...
});
查看木偶演员的角色,您需要为指定的属性构造一个元素选择器
的MDN文档说明了如何执行此操作:
const puppeter=require('puppeter');
puppeter.launch().then(异步浏览器=>{
const page=wait browser.newPage();
等待页面。转到('https://example.com');
//使用属性选择元素
常量元素=等待页面。$(“[data form field value=“244103310504090”]”);
// ...
});
hmm是的,我已经设置了一个元素选择器,但是我尝试过的所有XPath(包括您刚才建议的XPath)都不起作用。。。这是运行的对象的实际xpath:/*[@id=“fitanalytics\u sizecontainer”]/section[2]/div/button[5]
,但显然我试图通过其属性来查找元素,而不是通过这个确切的xpath。您确实使用了页面。$
而不是页面。xpath
?请粘贴您正在使用的确切代码-此函数应使用标准CSS选择器,而不是XPath是的,我肯定使用的是页面。$
,请参阅我的代码:const[sizeOption]=wait page。$(“[data form field value=“244103310504090”]”);如果(sizeOption){await sizeOption.click();}
页面。$
将只返回单个元素(页面。$$
返回数组),您应该能够将该代码重写为:const sizeOption=await页面。$(“[data form field value=“244103310504090”]”);if(sizeOption){wait sizeOption.click();}
但这与我在上面发送的代码完全相同,只是在.click()函数所需的常量周围没有[]是的,我已经设置了一个元素选择器,但是我尝试过的所有XPath(包括您刚才建议的XPath)都不起作用。。。这是运行的对象的实际xpath:/*[@id=“fitanalytics\u sizecontainer”]/section[2]/div/button[5]
,但显然我试图通过其属性来查找元素,而不是通过这个确切的xpath。您确实使用了页面。$
而不是页面。xpath
?请粘贴您正在使用的确切代码-此函数应使用标准CSS选择器,而不是XPath是的,我肯定使用的是页面。$
,请参阅我的代码:const[sizeOption]=wait page。$(“[data form field value=“244103310504090”]”);如果(sizeOption){await sizeOption.click();}
页面。$
将只返回单个元素(页面。$$
返回数组),您应该能够将该代码重写为:const sizeOption=await页面。$(“[data form field value=“244103310504090”]”);if(sizeOption){await sizeOption.click();}
但这与我在上面发送的代码完全相同,只是在.click()函数所需的常量周围没有[]!想展示一下这段代码吗?另外,你的HTML似乎有点奇怪,因为
结束标记不合适。嗨!想展示一下这段代码吗?另外,您的HTML似乎有点奇怪,因为
结束标记不合适。