список кнопок на странице. После того, как я получу список, я хочу проверить, отображается ли кнопка на странице - PullRequest
0 голосов
/ 31 мая 2019

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

package com.practice;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Buttons {

    public static void main(String[] args) throws InterruptedException {

        System.setProperty("webdriver.chrome.driver",
                "C:\\Users\\Oderint dum metuant\\eclipse-workspace\\JAR FILES\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.toolsqa.com/automation-practice-switch-windows/");

        List <WebElement> buttons = driver.findElements(By.tagName("button"));
        for ( int i=0; i<buttons.size();i++){
            WebElement button = buttons.get(i);
            if(button.isEnabled()){
                System.out.println(buttons);
                }         
            }

    }

}

Это то, что я получаю, когда запускаю код:

[[ChromeDriver: Chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка] [[ChromeDriver: chrome на XP (fddbb691263a84a531368a18e6d495b3)] -> имя тега: кнопка]

Ответы [ 2 ]

0 голосов
/ 31 мая 2019
  1. Если вы хотите напечатать список названий кнопок, отображаемых на странице.

Отв.Удалите блок условия и измените оператор печати.См. Ниже код:

List <WebElement> buttons = driver.findElements(By.tagName("button"));

    for ( int i=0; i<buttons.size();i++)
    {
        WebElement button = buttons.get(i);

        System.out.println(button.getText());//It prints all the buttons name displayed on the page

    }

2.Если вы хотите напечатать список имен кнопок, которые включены на странице.

Отв.Сохраните блок условия if, просто измените оператор печати.См. Ниже код:

List <WebElement> buttons = driver.findElements(By.tagName("button"));

        for ( int i=0; i<buttons.size();i++)
        {
            WebElement button = buttons.get(i);

            //System.out.println(button.getText());  //It prints all the buttons name displayed on the page

        if(button.isEnabled())
            {
                System.out.println(button.getText()); //It prints all the buttons name which are enabled on the page

            }    
        }
0 голосов
/ 31 мая 2019

Есть в основном три вещи

Thread.sleep(10000); // you can also use web driver's implicit and explicit wait or wait for page to load. This is just for example
List <WebElement> buttons = driver.findElements(By.tagName("button"));
    for (int i=0; i<buttons.size();i++){
        WebElement button = buttons.get(i);
        try {
            if(button.isDisplayed()){
                System.out.println(button.getText()+" - is displayed");
            }
            else {
                System.out.println(button.getText()+" - is present but not displayed");
            }
        } catch(NoSuchElementException e) {
            System.out.println("Element is not present, hence not displayed as well");
        }
    }
  1. Используйте некоторые функции ожидания для правильной загрузки страницы.
  2. Используйте метод isDisplayed, чтобы проверить видимость кнопки. isDisplayed выдаст ошибку, когда элемент отсутствует и виден. Так что используется блок try catch для обработки NoSuchElementException исключения.
  3. Вы печатаете WebElements объект, т.е. кнопки. Используйте метод get text кнопки, а затем распечатайте его. Вы можете увидеть, какая кнопка видна, а какая нет.
...