Это всего лишь два моих цента по этому вопросу, и я бы сказал, что мои навыки работы с javascript средние и упрощенные.Хотя я часто использую javascript, webdriver и selenium.
То, что Кундук написал use while loop and check if button exists.if yes it will click() once it can't find jumps out of the loop
, в принципе верно, если я понимаю вашу первоначальную проблему (я не до конца понимаю ваши вопросы, чтобы ответить).Я здесь для того, чтобы предоставить решение, которое я протестировал и которое работает.
const url2 = "https://www.sportsbookreview.com/betting-odds/nba-basketball/money-line/?date=20190311"
async function main(){
const client = webdriverio.remote({
desiredCapabilities: {
browserName: "chrome",
deprecationWarnings: "false"
}
})
await client.init();
await client.url(url2);
await client.waitForVisible("#bettingOddsGridContainer", 10000);
await client.click("#bettingOddsGridContainer > div:nth-child(3) > div:nth-child(4) > div:nth-child(3) > div > div > div:nth-child(1) > i");
}
Это щелкнет стрелку вправо в первом ряду и позволит ему двигаться вперед.Я не понял вашего вопроса, так как стрелка отображается как элемент в DOM и позволяет пользователю манипулировать ею.Вы можете добавить
let rightArrowExist = await client.isExisting("#bettingOddsGridContainer > div:nth-child(3) > div:nth-child(4) > div:nth-child(3) > div > div > div:nth-child(1) > i");
, если хотите.Это покажется правдой, пока есть стрела.Я могу прокрутить весь путь вправо и подтвердить, что стрелка исчезнет, как только вы достигнете конца.