выделите элемент селен java - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь найти элемент и нажимать на него каждый раз, но Scroll не работает.

WebElement attendeelist = dr.findElement(By.id("idView2--freemantable-tblBody"));
java.util.List<WebElement> row = attendeelist.findElements(By.tagName("tr"));

 for(int j=8;j<row.size();j++) {
     for(int k=1;k<4;k++) {
        if (j>8)
        {
            JavascriptExecutor js = (JavascriptExecutor) dr;
            js.executeScript("arguments[0].scrollIntoView(false);", dr.findElement(By.id("__item1-idView2--freemantable-"+j)));
        }
        dr.findElement(By.id("__button"+k+"-idView2--freemantable-"+j)).click(); 
        dr.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
        dr.findElement(By.id("__button4-img")).click();

    }
}

Пожалуйста, помогите мне исправить это.

Ответы [ 3 ]

0 голосов
/ 26 февраля 2020

попробовал это тоже.

сейчас я пытаюсь с этим кодом, в первый раз он прокручивается вниз к элементу, а во второй раз ошибка с элементом невосстановима

WebElement attendeelist = dr.findElement (By.id ("idView2 - freemantable-tblBody")); java .util.List row =tendeelist.findElements (By.tagName ("tr"));

         for(int j=10;j<row.size();j++) {


             for(int k=1;k<4;k++) {

             if (j>=8)

                    {
                         dr.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
                         WebElement Element = dr.findElement(By.id("__button"+k+"-idView2--freemantable-"+j+"-content"));
                         js.executeScript("arguments[0].scrollIntoView();", Element);  
                         dr.findElement(By.id("__button"+k+"-idView2--freemantable-"+j+"-content")).click(); 
                         dr.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
                         dr.findElement(By.id("__button4-img")).click();
                    }
                    }
                    }
                    }

     dr.findElement(By.id("idView2--combobox1-arrow")).click();
0 голосов
/ 26 февраля 2020

Вы можете попробовать этот метод:

public void scrollToWebElement(String locator) {
 try {
        (new WebDriverWait(driver, 20)).until(ExpectedConditions.visibilityOfElementLocated(elementlocator.elements(locator)));
        WebElement element = driver.findElement(elementlocator.elements(locator));
        Point point = element.getLocation();
        JavascriptExecutor jsExecutor = ((JavascriptExecutor) driver);
        int y = point.getY() - 200;
        jsExecutor.executeScript("window.scrollTo(" + point.getX() + "," + y + ");", "");
    } catch (Exception e) {
        e.printStackTrace(); public void scrollToWebElement(String locator) {
    }
}
0 голосов
/ 25 февраля 2020

Попробуйте:

JavascriptExecutor je = (JavascriptExecutor)driver;
je.executeScript("window.scrollBy(0,250),"");

сначала прокрутите вниз, а затем нажмите на нужный элемент. Чтобы найти точное местоположение пикселя, вы можете использовать chrome расширение Page Ruler и MeasureIt.

...