Обработка раскрывающегося списка и списка с множественным выбором с помощью Selenium WebDriver
Чтобы обрабатывать раскрывающийся список и список с множественным выбором с помощью Selenium WebDriver, нам нужно использовать Select class.
Класс Select — это класс Webdriver, обеспечивающий реализацию HTML-тега SELECT. Он предоставляет несколько методов типа «Select By» и «Deselect By». Мы используем эти методы для выбора или отмены выбора в раскрывающемся списке или объекте множественного выбора. Класс Select является частью пакета selenium.
Нам нужно импортировать указанную ниже библиотеку.
1 | import org.openqa.selenium.support.ui.Select; |
Стандартный синтаксис Select Class следующий:
1 | Выпадающее меню Select = new Select(<WebElement>); |
Пример:
12 | WebElement mySelectElement = driver.findElement(By.name(“dropdown”));Выпадающий список Select = new Select(mySelectElement); |
или
1 | Select dropdown = new Select(driver.findElement(By.xpath(“//select[@name='dropdown']”))); |
Примечание. Выберите класс начинается с заглавной буквы “S”.
Для обработки раскрывающихся списков и списков множественного выбора в Selenium мы используем следующие типы методов выбора.
Типы методов выбора:
i. Метод selectByVisibleText
ii. Метод selectByIndex
iii. Метод selectByValue
Типы методов DeSelect:
i. Метод deselectByVisibleText
ii. Метод deselectByIndex
iii. Метод deselectByValue
iv. Метод deselectAll
Давайте рассмотрим один за другим на примере программы:
SelectByVisibleText Метод:
Он работает на основе «видимого текста», предоставленного нами.
Синтаксис:
1 | dropdown.selectByVisibleText(); |
Пример программы: selectByVisibleTextJava
123456789101112131415161718192021222324252627282930 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“dropdown”));Select dropdown= new Select(mySelectElement);//Чтобы выбрать параметр – selectByVisibleText, selectByIndex, selectByValue//selectByVisibleTextdropdown.selectByVisibleText( “Автоматическое тестирование”);}} |
SelectByIndex Метод:
работает на основе 'значения индекса предоставлено нами.
Синтаксис
1 | dropdown.selectByIndex(Index); |
Пример программы: selectByIndexJava
123456789101112131415161718192021222324252627282930 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“dropdown”));Select dropdown= new Select(mySelectElement);//Чтобы выбрать параметр – selectByVisibleText, selectByIndex, selectByValue//selectByIndexdropdown.selectByIndex( 2); //значение равно QTP}} |
SelectByValue Метод:
работает на основе предоставленного 'value' нами.
Синтаксис
1 | dropdown.selectByValue(Value); |
Пример программы: selectByValueJava
123456789101112131415161718192021222324252627282930 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“dropdown”));Select dropdown= new Select(mySelectElement);//Чтобы выбрать параметр – selectByVisibleText, selectByIndex, selectByValue//selectByValuedropdown.selectByValue( “мануал”); //значение — ручное тестирование}} |
Методы DeSelect с примерами:
DeselectByVisibleText Метод:
Он работает на основе 'видимого текста' который мы предоставляем
Синтаксис:
1 | dropdown.deselectByVisibleText(); |
Пример программы:р>
1234567891011121314151617181920212223242526272829303132 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“multipleselect[]”));Select dropdown= new Select(mySelectElement);//Чтобы отменить выбор параметра//метод отмены выбора вызовет исключение UnsupportedOperationException, если SELECT не поддерживает множественный выбор м>Метод DeselectByIndex:
работает на основе 'значения индекса', которое мы предоставляем Синтаксис:
Пример программы: deselectByIndexJava
Пример программы: deselectByValueJava
DeselectAll< /em> Метод:< р>Он заключается в том, чтобы отменить выбор сразу всех выбранных параметров. Синтаксис:<класс таблицы =crayon-table> | ||||||||
1 | dropdown.deselectAll( ); |
Пример программы:
deselectAllJava
1234567891011121314151617181920212223242526272829303132 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“multipleselect[]”));Select dropdown= new Select(mySelectElement);//Чтобы отменить выбор параметра//метод отмены выбора вызовет исключение UnsupportedOperationException, если SELECT не поддерживает несколько вариантов выбораdropdown.selectByValue(“msagile”);Thread.sleep(2000);dropdown.deselectAll();}} |
Чтобы получить выбранный вариант:
Пример программы: getFirstSelectedOptionJava
1234567891011121314151617181920212223242526272829 | пакет программного обеспечения TestingMaterial; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org. openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“multipleselect[]”));Select dropdown= new Select(mySelectElement);WebElement option = dropdown.getFirstSelectedOption();System.out.println(option .получитьтекст()); //output “Selenium”}} |
Чтобы получить список опций из выпадающего списка:
Пример программы:
Чтобы получить список опцийJava
1234567891011121314151617181920212223242526272829303132 | пакет программного обеспечения TestingMaterial; импорт java.util.List; импорт java.util.concurrent.TimeUnit; импорт org.openqa.selenium.By; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.WebElement; импорт org.openqa.selenium. chrome.ChromeDriver;импортировать org.openqa.selenium.support.ui.Select;импортировать org.testng.annotations.Test; открытый класс SelectMethod {@Testpublic static void captureScreenMethod() выдает Exception{System.setProperty(“webdriver.chrome.driver”,”D://Selenium Environment//Drivers//chromedriver.exe”); Драйвер WebDriver = новый ChromeDriver( );driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.get(“https://www.softwaretestingmaterial.com/sample-webpage-to-automate/”);driver.navigate().refresh();//После инициализации объекта выбора вы можете получить доступ ко всем методам класса выбора.//Идентифицируйте выбранный элемент HTML:Thread .sleep(10000);WebElement mySelectElement = driver.findElement(By.name(“multipleselect[]”));Select dropdown= new Select(mySelectElement);List<WebElement> options = dropdown.getOptions();for (параметр WebElement : опции) {System.out.println(option.getText()); //output “Selenium”, “QTP”, “Ручное тестирование”, “Автоматическое тестирование”, “Тестирование производительности”*/}}} |
Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вы можете подписаться на бесплатную рассылку по электронной почте, используя ссылку ниже.
Подпишитесь и получайте бесплатную электронную книгу и регулярные обновления от SoftwareTestingMaterial.com
TAG: qa