是否有任何方法(在API中找不到)或解决方案点击带有文本的元素?
例如我有html:
<div class="elements">
<button>Button text</button>
<a href=#>Href text</a>
<div>Div text</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想点击包含文字的元素(点击.elements里面的按钮),如:
Page.click('Button text', '.elements')
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
我需要从 span 标签获取文本并验证文本是否等于“check”。
我怎样才能在木偶师中实现这一目标?
下面是我编写的代码示例,如果有人可以帮我解决这个问题,请。
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({
headless: false,
// "slowMo": 50,
args: ["--start-fullscreen"],
defaultViewport: null,
});
//Page
const page2 = await browser.newPage();
await page2.goto("https://www.flipkart.com");
await page2.waitFor(2000);
await page2.$x("//input[@class='_2zrpKA _1dBPDZ']").then(async (ele) => {
await ele[0].type(username);
});
await page2.waitFor(2000);
await page2.$x("//input[@type='password']").then(async (ele) => {
await ele[0].type(password);
});
await page2.waitFor(2000);
await page2
.$x("//button[@class='_2AkmmA _1LctnI _7UHT_c']")
.then(async (ele) => {
await ele[0].click();
});
await page2.waitFor(2000);
await page2.$x("//input[@class='LM6RPg']").then(async (ele) => {
await ele[0].type("iPhone …Run Code Online (Sandbox Code Playgroud) 在我用 Puppeteer 抓取的页面上,我有一个列表,每个li. 我正在尝试在此列表中查找并单击具有特定文本的元素。我有以下代码:
await page.waitFor(5000)
const linkEx = await page.$x("//a[contains(text(), 'Shop')]")
if (linkEx.length > 0) {
await linkEx[0].click()
}
Run Code Online (Sandbox Code Playgroud)
你知道我如何用等待实际文本来替换第一行'Shop'吗?
我试过 await page.waitFor(linkEx),waitForSelector(linkEx)但它不起作用。
另外,我想a用实际的 id ( #activities) 或类似的东西替换第二行代码中的那个,但我找不到合适的例子。
你能帮我解决这个问题吗?