Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Puppeter:通过HTML属性查找元素_Javascript_Node.js_Puppeteer - Fatal编程技术网

Javascript Puppeter:通过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

本质上,我试图让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- 
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似乎有点奇怪,因为
结束标记不合适。