Selenium WebDriver javaexecutor с для цикла - PullRequest
0 голосов
/ 17 октября 2019

Привет, я новичок в веб-драйвере selenium, поэтому я не знаю, как использовать цикл for при использовании javascript executor, поэтому любой может преобразовать этот код ниже в цикл for или любой цикл, в коде ниже, как вы можете наблюдать просто div [] меняется после div [6] в этой строке driver.findElement (By.xpath ("// * [@ id = 'unfreezedGridBody'] / div [6] / div [5] /div / div / span [3] "));

Любая помощь будет принята.

int count = 
driver.findElements(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[1]/div/div/span[3]")).size();
System.out.println(count);

JavascriptExecutor jse = (JavascriptExecutor)driver; 
WebElement dropdowns = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[1]/div/div/span[3]"));
jse.executeScript("arguments[0].scrollIntoView()", dropdowns);
jse.executeScript("arguments[0].click();", dropdowns);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);



JavascriptExecutor jse2 = (JavascriptExecutor)driver;
WebElement dropdowns2 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[2]/div/div/span[3]"));
jse2.executeScript("arguments[0].scrollIntoView()", dropdowns2);
jse2.executeScript("arguments[0].click();", dropdowns2);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);


JavascriptExecutor jse3 = (JavascriptExecutor)driver;
WebElement dropdowns3 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[3]/div/div/span[3]"));
jse3.executeScript("arguments[0].scrollIntoView()", dropdowns3);
jse3.executeScript("arguments[0].click();", dropdowns3);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);


JavascriptExecutor jse4 = (JavascriptExecutor)driver;
WebElement dropdowns4 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[4]/div/div/span[3]"));

JavascriptExecutor jse5 = (JavascriptExecutor)driver;
WebElement dropdowns5 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[5]/div/div/span[3]"));
jse5.executeScript("arguments[0].scrollIntoView()", dropdowns5);``
jse5.executeScript("arguments[0].click();", dropdowns5);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);

1 Ответ

0 голосов
/ 17 октября 2019

Это может работать для вас

    String xpath = "//[@id='unfreezedGridBody']/div[6]/div[%d]/div/div/span[3]";
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    for(int i=1; i<4; i++){
        WebElement dropdowns = driver.findElement(By.xpath(String.format(xpath,i)));
        jse.executeScript("arguments[0].scrollIntoView()", dropdowns);
        jse.executeScript("arguments[0].click();", dropdowns);
        Thread.sleep(2000);
        driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
        Thread.sleep(10000);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...