Я работаю на веб-приложения, которые имеют структуру DIV, как показано нижеWebDriver: Java - Как получить все invsible кнопки на веб-странице и нажмите любую одну кнопку
<div class="hover-buttons">
<a id="j_idt59:0:j_idt62" href="javascript:void(0);" class=" btn btn-padding-side" ng-click="click($event,{s:"j_idt59:0:j_idt62",p:"j_idt56"});">
<i class="icon left "></i>
Transfer
</a>
<a id="j_idt59:0:j_idt64" href="javascript:void(0);" class=" btn btn-padding-side gray-dark" ng-click="click($event,{s:"j_idt59:0:j_idt64",p:"j_idt56",u:"breadcrumb mainPage accAddServicesPanel"});">
<i class="icon left "></i>
Account Details
<div scrolltopfunction=""></div>
</a>
</div>
Мне нужно, чтобы все кнопки на страницу с тегом <a id>
и нажмите на любую кнопку с изменяющимися динамическими идентификаторами.
Количество кнопок, отображаемых на странице, меняется каждый раз во время входа в систему, и по умолчанию они невидимы. Просьба советом о том, как получить все кнопки и нажать любую кнопку.
Я попытался это .. но ниже логика щелкает на первой кнопке настоящего 'Список mylist = driver.findElements (By.xpath ("// * [@ id = 'j_idt59']")); \t \t \t \t \t для (WebElement Ele: MyList) { \t \t \t \t \t \t \t \t \t \t \t \t Эле = driver.findElement (By.xpath ("// * [содержит (@ идентификатор, 'j_idt64 «)]")); \t \t \t \t \t \t \t \t \t \t \t JavascriptExecutor = расслоение плотной (JavascriptExecutor) драйвера; \t \t \t \t \t \t js.executeScript ("аргументы [0] .click();", Эле); ' –
Aditya
Вы просто проверить' isDisplayed() 'состояние и проверить на видимую кнопку как' List MyList = драйвер. findElements (By.xpath ("// * [@ ид = 'j_idt59']")); для (WebElement ele: mylist) {if (ele.isDisplayed()) {ele.click(); }} ' –
Это щелкнет по первому элементу. Что, если хотите щелкнуть последний в списке? Благодарю. – Aditya