【问题标题】:Puppeteer selector; Button not selected木偶选择器;未选择按钮
【发布时间】:2019-02-03 14:10:27
【问题描述】:

我正在尝试点击await page.click('.2 tabBtnCenter');,但它不起作用。

有人可以为value=2 tabBtnCenter 定义一个合适的 Puppeteer CSS 选择器吗?

<div id="headerTab">
    <ul>
        <li value="0">
            <div class="tabBtnLeft"></div>
            <div class="tabBtnCenter">Status</div>
            <div class="tabBtnRight"></div>
        </li>
        <li value="1">
            <div class="tabBtnLeft"></div>
            <div class="tabBtnCenter">WAN</div>
            <div class="tabBtnRight"></div>
        </li>
        <li value="2">
            <div class="tabBtnLeft"></div>
            <div class="tabBtnCenter">LAN</div>
            <div class="tabBtnRight"></div>
        </li>
    </ul>
</div>

【问题讨论】:

    • 状态
    • WAN
    • 局域网

标签: javascript node.js css-selectors puppeteer google-chrome-headless


【解决方案1】:

使用

const sel = await page.$x("//div[text()='LAN' and @class='tabBtnCenter']");

if (sel.length > 0) {
    await sel[0].click();
}
else {
    throw new Error("selector not found");
}

【讨论】:

    【解决方案2】:

    您可以使用以下选择器单击您使用page.click() 指定的元素:

    await page.click('[value="2"] > .tabBtnCenter');
    

    【讨论】:

    • 等待页面.waitForNavigation({waitUntil: 'load'});等待 page.click('[value="2"] > .tabBtnCenter');
    • 另外,请分享任何我可以理解选择器关键概念的链接
    • @FaizanAwan 这里是了解更多关于 CSS 选择器的好资源:developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors
    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多