Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как проверить наличие или видимость элемента в селене 2 (Selenium WebDriver)

Автор вопроса: TEJAS TRIVEDIОтветов: 6

Любой может прислать мне пример кода, как проверить элемент

  1. присутствует
  2. виден
  3. активируется
  4. текстовое представление

в Selenium WebDrvier с использованием Java

  • Что вы пробовали? Вы читали какие-нибудь учебники? На каком языке? С#? Джава? PHP? Свинья на латыни? Arran 04.01.2013
  • Я хочу попробовать это на языке java. Пожалуйста, пришлите мне учебники или справочный документ для веб-драйвера Selenium. Я буду вам благодарен. пожалуйста, помогите мне TEJAS TRIVEDI 04.01.2013

javaselenium-webdriverwebdriver

Ответы

Ответ 1 · рейтинг 74 · Manigandan

Я использовал операторы печати java для простоты понимания.

  1. Чтобы проверить наличие элемента:

    if(driver.findElements(By.xpath("value")).size() != 0){
    System.out.println("Element is Present");
    }else{
    System.out.println("Element is Absent");
    }
    

    Or

    if(driver.findElement(By.xpath("value"))!= null){
    System.out.println("Element is Present");
    }else{
    System.out.println("Element is Absent");
    }
    
  2. Чтобы проверить видимость:

    if( driver.findElement(By.cssSelector("a > font")).isDisplayed()){
    System.out.println("Element is Visible");
    }else{
    System.out.println("Element is InVisible");
    }
    
  3. Чтобы установить флажок Включить:

    if( driver.findElement(By.cssSelector("a > font")).isEnabled()){
    System.out.println("Element is Enable");
    }else{
    System.out.println("Element is Disabled");
    }
    
  4. Проверка наличия текста

    if(driver.getPageSource().contains("Text to check")){
    System.out.println("Text is present");
    }else{
    System.out.println("Text is absent");
    }
    

Ответ 2 · рейтинг 11 · DarthOpto

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

    WebElement rxBtn = driver.findElement(By.className("icon-rx"));
    WebElement otcBtn = driver.findElement(By.className("icon-otc"));
    WebElement herbBtn = driver.findElement(By.className("icon-herb"));

    Assert.assertEquals(true, rxBtn.isDisplayed());
    Assert.assertEquals(true, otcBtn.isDisplayed());
    Assert.assertEquals(true, herbBtn.isDisplayed());

Это всего лишь пример. По сути, вы объявляете и определяете переменные WebElement, которые хотите использовать, а затем Assert независимо от того, отображаются они или нет. Это использует утверждения TestNG.

Ответ 3 · рейтинг 9 · Ripon Al Wasim

Вот мой код Java для Selenium WebDriver. Напишите следующий метод и вызовите его во время утверждения:

protected boolean isElementPresent(By by){
        try{
            driver.findElement(by);
            return true;
        }
        catch(NoSuchElementException e){
            return false;
        }
    }

Ответ 4 · рейтинг 5 · Mayur Shah

Попробуйте использовать код ниже:

private enum ElementStatus{
        VISIBLE,
        NOTVISIBLE,
        ENABLED,
        NOTENABLED,
        PRESENT,
        NOTPRESENT
    }
    private ElementStatus isElementVisible(WebDriver driver, By by,ElementStatus getStatus){
        try{
            if(getStatus.equals(ElementStatus.ENABLED)){
                if(driver.findElement(by).isEnabled())
                    return ElementStatus.ENABLED;
                return ElementStatus.NOTENABLED;
            }
            if(getStatus.equals(ElementStatus.VISIBLE)){
                if(driver.findElement(by).isDisplayed())
                    return ElementStatus.VISIBLE;
                return ElementStatus.NOTVISIBLE;
            }
            return ElementStatus.PRESENT;
        }catch(org.openqa.selenium.NoSuchElementException nse){
            return ElementStatus.NOTPRESENT;
        }
    }

Ответ 5 · Santiago Hernandez

Чтобы убедиться, что элемент присутствует, вы можете сделать следующее:

driver.findElements(By.id("id"));

Это вернет массив, если размер этого массива > 0, то элемент/ы присутствуют.

Кроме того, вам необходимо предоставить дополнительную информацию, такую ​​как язык и что вы пробовали, прежде чем спрашивать,

Удачи

Ответ 6 · рейтинг -1 · Jlearner

Чтобы проверить, является ли элемент видимым, нам нужно использовать element.isDisplayed(); Но если нам нужно проверить присутствие элемента в любом месте Dom, мы можем использовать следующий метод

public boolean isElementPresentCheckUsingJavaScriptExecutor(WebElement element) {
        JavascriptExecutor jse=(JavascriptExecutor) driver;
        try {
            Object obj = jse.execute("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;",
                    element);
            if (obj.toString().contains("true")) {
                System.out.println("isElementPresentCheckUsingJavaScriptExecutor: SUCCESS");
                return true;
            } else {
                System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL");
            }

        } catch (NoSuchElementException e) {
            System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL");
        }
        return false;
    }

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы