Как я могу нажать на одну и ту же кнопку 99 раз или до конца кода? - PullRequest
0 голосов
/ 27 июня 2018

Нужно решение, пожалуйста, помогите.

Имею тот же тип кнопки пропуска, имя id Свойство для всех продуктов. Изменения только в Xpath. Пожалуйста, сообщите мне, как я могу в ближайшее время нажать на 99 одинаковых кнопок пропуска и одну всплывающую кнопку отмены.

Вот мое изображение для кнопки пропуска

Skip Button Image

Вот мой образ, после нажатия на SKip, я получу всплывающее окно, как это. Я, что мне нужно нажать на Отмена

Cancel Image

Вниз я буду прикреплять код для пропуска и отмены.

Из HTML-кода для кнопки пропуска, я взял Xpath только для его работы,

Мой Xpath -

//input[@id='CustomPaging_GridView_gv_edit1_0'])-Product1
 //input[@id='CustomPaging_GridView_gv_edit1_1'])-Product2
  //input[@id='CustomPaging_GridView_gv_edit1_2'])-Product3

Like this 99 Products I Have To Write Xpath. It's Going Too Lengthy

HTML-код для кнопки пропуска равен

 <input type="submit" name="CustomPaging_GridView$ctl02$gv_edit1" value="SKIP" onclick="product_skip(37639 );" id="CustomPaging_GridView_gv_edit1_0" class="button2">

HTML-код для кнопки отмены,

<div class="modal-footer">
                <span id="prcid" style="display:none;">processing...</span>
                <button type="button" id="skipok" onclick="skipoverall(this)" class="btn btn-primary" data-id="37639">Ok</button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
            </div>

PS: Каждый раз, когда я нажимаю кнопку «Пропустить», мне нужно одновременно нажать кнопку «Отмена». Мне нужно нажать кнопку «Пропустить» и кнопку «Отмена» для 99 продуктов

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Попробуйте -

public void clickSkipAndCancel(){
            List<WebElement> elements = driver.findElements(By.xpath("//input[contains(@id, 'CustomPaging_GridView_gv_edit1_')]"));
            for (Iterator<WebElement> iterator = elements.iterator(); iterator.hasNext();) {
                WebElement webElement = (WebElement) iterator.next();
                new WebDriverWait(driver, 10)
                .ignoring(StaleElementReferenceException.class)
                .until(new Predicate<WebDriver>() 
                       {
                         @Override
                         public boolean apply(@Nullable WebDriver driver) {
                         webElement.click();
                         return true;
                       }
});

                driver.findElement(By.xpath("//button[text()='Cancel']")).click();
            }                
        }

Вам придется импортировать -

import org.openqa.selenium.WebElement;
import java.util.Iterator;
import java.util.List;

Дайте мне знать, работает ли он для вас или нет.

0 голосов
/ 28 июня 2018

Так что, учитывая информацию, я бы попробовал ниже вид кода. Поскольку вы не упомянули язык, я бы дал логику в Python

elems = driver.find_elements_by_xpath("//input[starts-with(@id, 'CustomPaging_GridView_gv_edit1_')]")

for elem in elems:
    elem.click()
    driver.find_element_by_xpath("//button[text()='Cancel']").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...