Puppeteer 使用Puppeter从输入标签获取选择器

Puppeteer 使用Puppeter从输入标签获取选择器,puppeteer,selector,Puppeteer,Selector,所以,我在React.js或Ember.js中有一个前端-不确定。我只是想自动化一些测试。在Chrome开发工具中查看HTML时,我看到 <label class="MuiFormLabel-root-16 MuiInputLabel-root-5 MuiInputLabel-formControl-10 MuiInputLabel-animated-13 MuiInputLabel-outlined-15" data-shrink="false"&

所以,我在React.js或Ember.js中有一个前端-不确定。我只是想自动化一些测试。在Chrome开发工具中查看HTML时,我看到

<label class="MuiFormLabel-root-16 MuiInputLabel-root-5 MuiInputLabel-formControl-10 MuiInputLabel-animated-13 MuiInputLabel-outlined-15" data-shrink="false">Username</label>
如何获得给定的选择器

用户名


我尝试了一些方法,但没有成功。

如果我理解正确,您需要根据其文本内容查找元素。如果是,至少有两种方式:

const puppeter=require('puppeter');
(异步函数main(){
试一试{
const browser=wait puppeter.launch();//{headless:false,defaultViewport:null,args:['--lang=en']}
const[page]=wait browser.pages();
等待页面。转到('https://example.org/');
常量元素1=等待页面。evaluateHandle(()=>{
return[…document.queryselectoral('h1')].find(h1=>h1.innerText=='Example Domain');
});
log(await(await element1.getProperty('outerHTML')).jsonValue());
const[element2]=wait page.$x('//h1[text()=“示例域”]');
log(await(await element2.getProperty('outerHTML')).jsonValue());
等待浏览器关闭();
}捕捉(错误){
控制台错误(err);
}
})();

如果我理解正确,您需要根据其文本内容查找元素。如果是,至少有两种方式:

const puppeter=require('puppeter');
(异步函数main(){
试一试{
const browser=wait puppeter.launch();//{headless:false,defaultViewport:null,args:['--lang=en']}
const[page]=wait browser.pages();
等待页面。转到('https://example.org/');
常量元素1=等待页面。evaluateHandle(()=>{
return[…document.queryselectoral('h1')].find(h1=>h1.innerText=='Example Domain');
});
log(await(await element1.getProperty('outerHTML')).jsonValue());
const[element2]=wait page.$x('//h1[text()=“示例域”]');
log(await(await element2.getProperty('outerHTML')).jsonValue());
等待浏览器关闭();
}捕捉(错误){
控制台错误(err);
}
})();

我的解决方案是将HTML数据属性放在前端代码中,这样我就可以轻松地选择它们。

我的解决方案是将HTML数据属性放在前端代码中,这样我就可以轻松地选择它们。

谢谢,但是页面对象似乎不适用于iFrame。这只是一个示例。您可以找到合适的iframe并使用此frame对象而不是page对象。谢谢,但是page对象似乎与iframe不兼容。这只是一个示例。您可以找到适当的iframe并使用此frame对象而不是page对象。
frame.$(selector)