pyppeteeer js関数の位置決めパスの変化を実行するラベル

1294 ワード

要求されるたびにページラベルのパスが変化し、位置決めができないシーンが発生します.
seleniumはラベルのtext値に基づいて位置決めすることができ、driver.find_element_by_xpath('//button/span[contains(text()、「テキストの内容を指定」]).click(),
pyppeteeerが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値を取得し、次の操作を行います