Selenium - это инструмент для тестирования программного обеспечения с открытым исходным кодом и портативного автоматизированного программного обеспечения для тестирования веб -приложений, которые могут работать в разных браузерах и операционных системах. Selenium на самом деле не один инструмент, а набор инструментов, которые помогают тестировщикам более эффективно автоматизировать их приложения.
Иногда мы встретимся в раскрывающемся поле тега <elect> </select>. Не обязательно возможно просто нажать на опцию в раскрывающемся поле. Selenium предоставляет выбранный класс специально для обработки раскрывающихся коробок.
<select id = "status" onchange = "" name = "status"> <option value = ""> </option> <value = "0"> не просмотрено </option> <vitue value = "1"> предварительный просмотр Проверка </option> <опция value = "2"> Проверка </option> <опция = "3"> Проверка </antain> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select> </select>
Операции в Python-Selenium
Возьмите Python в качестве примера для просмотра реализации файла кода Selenium select.py:
.../selenium/webdriver/support/select.py
класс выберите:
def __init __ (self, wewebrem): "" Конструктор. Проверка сделана, что данным элементом действительно является тег SELECT. Если это не так, то непредвзято, то непредвзятость, выбранное элементом, выберите элемент, выберите: от selenium.webdriver.support.ui import select /nselect(driver.find_element_by_tag_name .selectexteg_by_index 25-_2) (obeweleme.leme.leme.leme.leme.leme. ! = "SELECT": REAP UNRIPECTEDTAGNAMEEXCEPTION ("SELECT работает только в элементах <SELT>, а не на < %s>" %weblement.tag_name) self._el = weweblementmulti = self._el.get_attribut Чтобы просмотреть реализацию класса Select, вам необходимо найти элемент. И пример предложения приведен в примере.
Выберите (Driver.find_Element_by_tag_name ("select")). Select_by_index (2) def select_by_index (self, index): "" Выберите опцию в данном индексе. Это делается путем изучения атрибута «индекса» элемента, а не просто подсчета. Соответствует: повысить noshelementexception («Не удалось найти элемент с индексом % d» %)Продолжайте просматривать использование метода SELECT_BY_INDEX () и соответствовать требованиям раскрывающегося прямоугольника, приведенного выше, поскольку требуется, чтобы параметры раскрывающегося ящика должен иметь атрибут индекса, такой как index = ”1».
def select_by_value (self, value): «» «Выберите все параметры, которые имеют значение, соответствующее аргументу. То есть, когда дается« foo », это выберет опцию, например: <option value =" foo "> bar </option>: args: - Значение - значение для совпадения с" "css =" опция [значение = % s] " %. self._el.find_elements (by.css_selector, css) matched = falsefor opt in opts: self._setselected (opt), если не самостоятельно.
Продолжайте видеть, что метод select_by_value () соответствует нашим требованиям, которые используются для выбора значения значения тега <poion>. Наконец, вы можете использовать следующую опцию, чтобы выбрать раскрывающуюся поле.
от selenium.webdriver.support.seerment import select
...
sel = driver.find_element_by_xpath ("// select [@id = 'status']")
Выберите (sel) .select_by_value ('0') #NOT Reviewed
Выберите (sel) .select_by_value ('1') #preleiminal Review
Выберите (sel) .select_by_value ('2') #Review пройден
Выберите (sel) .select_by_value ('3') #обзор не удался
Операции в Java-Selenium
Конечно, использование в Java также похоже на то, что единственное различие находится на уровне синтаксиса.
пакет com.jase.base;
Импорт org.openqa.selenium.webdriver;
Импорт org.openqa.selenium.by.byid;
Импорт org.openqa.selenium.chrome.chromedriver;
Импорт org.openqa.selenium.support.ui.select;
открытый класс selectTest {
public static void main (string [] args) {
Webdriver Driver = new Chromedriver ();
Driver.get ("http://www.you_url.com");
//…
Выберите SEL = новый SELECT (Driver.FindElement (byId.xpath ("// select [@id = 'status']"))));
sel.selectbyvalue ("0"); // не пересмотрен
sel.selectbyvalue ("1"); // Предварительный обзор прошел
sel.selectbyvalue ("2"); // прошел обзор
sel.selectbyvalue ("3"); // Обзор не проходит
}
}