pyppeteer 如何执行js函数定位路径变化的标签

遇到一场景,每次请求页面标签路径会变化,导致定位不到。

selenium 可以根据标签的text值进行定位,driver.find_element_by_xpath('//button/span[contains(text(), "指定文本内容")]').click(),

pyppeteer 执行xpath的操作没有测试。

async def click_credentials(page):
    num = 0
    while True:
        try:
            num += 1
            await asyncio.sleep(3)
            click_credentials_js = """()=>{
                var links=document.querySelectorAll("a");
                var lens=links.length;
                var lists=["凭据","Credentials","credentials"];
                for (var i=0;i < lens;i++){
                var tc = links[i].textContent;
                if(lists.indexOf(tc.trim()) != -1){
                    console.log(tc.trim());
                    links[i].click();
                    return true;
                }}}"""
            clickcredentials = await page.evaluate(click_credentials_js)
            if not clickcredentials:
                await page.reload()
                continue
            await asyncio.sleep(3)
            break
        except Exception as e:
            print('clickcredentials:',e)
        if num > 15:
            return

 获取a标签的textContent值,再进行下一步操作

你可能感兴趣的:(pyppeteer)