Я пытаюсь использовать Puppeteer для ввода адреса в ubereats (www.ubereats.com). Я понял, что перед вводом адреса мне нужно подождать, пока загрузится какой-нибудь значок, иначе текст просто будет удален. Для этого я использую:
page.waitForSelector("#wrapper > main > div.ao.ap.aq.ar.af > div.ag.bq.br.bs.bt > div > div.c1.af.bh.c2 > div > div.av.b3.ax > div > svg > path");
, который работает на данный момент. Однако проблема в том, что имена классов иногда меняются. Я не видел заметных закономерностей в изменениях. Я попытался использовать page.waitForXPath () вместо этого, потому что в нем нет имен классов, но это не сработало. Есть ли способ обойти меняющееся имя класса? Спасибо!
Редактировать: добавлен пример HTML. Это самые внутренние элементы, ведущие к значку, который я жду для загрузки. Некоторые из этих имен классов случайно меняются.
<div class="bi bj c3 at c4 c5 bd ae ar c6 c7 av af an">
<div class="av b3 ax">
<div class="c8 b1 c9">
<svg width="24px" height="24px" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="presentation" aria-hidden="true" focusable="false">
<path d="M17.5834 5.16602C14.5001 2.08268 9.50008 2.08268 6.41675 5.16602C3.33341 8.24935 3.33341 13.3327 6.41675 16.416L12.0001 21.9993L17.5834 16.3327C20.6667 13.3327 20.6667 8.24935 17.5834 5.16602ZM12.0001 12.416C11.0834 12.416 10.3334 11.666 10.3334 10.7493C10.3334 9.83268 11.0834 9.08268 12.0001 9.08268C12.9167 9.08268 13.6667 9.83268 13.6667 10.7493C13.6667 11.666 12.9167 12.416 12.0001 12.416Z" fill="#000000"></path>
</svg>
</div>
</div>
<div class="b3 ca ah b5 b6"></div>
<input role="combobox" aria-expanded="false" id="location-typeahead-home-input" aria-autocomplete="list" aria-controls="location-typeahead-home-menu" aria-labelledby="location-typeahead-home-label" autocomplete="off" value="" placeholder="Enter delivery address" class="bh bd cb cc">
<div class="b3 ca ah b5 b6"></div>
</div>