async function main() {
const browser = await puppeteer.launch({ headless: false});
const page = await browser.newPage();
await page.goto(url);
console.log(await page.title());
await page.click('a.search-name');
}
<div class="search-results-content-container">
<div class="search-results-image-container">
</div>
<div class="search-results-details-container">
<h4 class="search-name"><a href="http://yahoo.com">Doe, Johm</a></h4>
<p class="search-title">
center of art
</p>
</div>
嗨,我正在使用puppeteer来自动执行一些任务,并且一直在继续,直到需要单击h4链接,该链接具有名为“搜索名称”的类。我尝试添加一个等待page.click('a.search-name'),但这不起作用。我也尝试了await page.click('h4.search-name')但也没有运气。有人可以告诉我如何使它单击具有可互换URL的链接。这就是我要专门用搜索名称类单击h4的原因。
答案 0 :(得分:0)
根据您的测试-await page.click('a.search-name');
a
链接没有search-name
类,因此找不到选择器,也没有单击任何内容。
如果您想保留search-name
上的h4
类,建议您将data-test
属性添加到链接<a href="http://yahoo.com" data-test='search-name'>
并将测试更改为:await page.click('a[data-test="search-name"]');
< / p>
HTML
<div class="search-results-content-container">
<div class="search-results-image-container">
</div>
<div class="search-results-details-container">
<h4 class="search-name">
<a href="http://yahoo.com" data-test='search-name'>Doe, Johm</a>
</h4>
<p class="search-title">
center of art
</p>
</div>
</div>
现在await page.click('a.search-name');
应该可以工作!
好的模式是选择元素时更喜欢使用“ 数据测试”属性选择器。
答案 1 :(得分:0)
下面的代码有效!
await page.waitForSelector('.search-name')
await page.click('.search-name');