Selenium ist ein Open Source- und tragbares automatisiertes Software -Test -Tool zum Testen von Webanwendungen, die auf verschiedenen Browsern und Betriebssystemen ausgeführt werden können. Selenium ist wirklich kein einziges Tool, sondern eine Reihe von Tools, mit denen Tester ihre Anwendungen effektiver automatisieren können.
Manchmal begegnen wir das Dropdown-Feld des <Select> </select> -Tags. Es ist nicht unbedingt möglich, im Dropdown-Feld einfach auf die Option zu klicken. Selenium bietet eine ausgewählte Klasse speziell für Dropdown-Boxen aus.
<select id="status" onchange="" name="status"><option value=""></option><option value="0">Not reviewed</option><option value="1">Preliminary review passed</option><option value="2">Review passed</option><option value="3">Review failed</option></select>
Operationen in Python-Selenium
Nehmen Sie Python als Beispiel, um die Implementierung der Selenium -Code -Select.py -Datei anzuzeigen:
.../selenium/webdriver/support/select.py
Klasse auswählen:
def __init __ (self, wewebrem): "" Konstruktor. Es wird eine Überprüfung durchgeführt, dass das angegebene Element tatsächlich ein Select -Tag ist. Wenn dies nicht der Fall ist, wird eine unerwartete TagnameException geworfen. !
Um die Implementierung der ausgewählten Klasse anzuzeigen, müssen Sie ein Element finden. Und ein Beispielsatz ist in Beispiel angegeben.
Select (treiber.find_element_by_tag_name ("select")). Select_by_index (2) def select_by_index (self, index): "" Wählen Sie die Option am angegebenen Index aus. Dies erfolgt durch die Untersuchung des "Index" -attributs eines Elements und nicht nur durch Zählen.:Args:- Index - Die Option in diesem Index wird ausgewählt "" match = str (index) Matched = Falsefor OPT in Self.Options: Wenn opt.get_attribute ("Index") == matchn. NoSuchelementException ("konnte Element nicht mit Index % d" % Index lokalisieren)Sehen Sie die Verwendung der Methode select_by_index () fort und erfüllen Sie die Anforderungen des oben angegebenen Dropdown-Boxs, da die Optionen des Dropdown-Felds ein Indexattribut wie Index = ”1 haben müssen.
Def select_by_value (Selbst, Wert): "" "Alle Optionen auswählen, die ein Wert haben, der dem Argument entspricht. Wenn" foo "angegeben ist, würde dies eine Option auswählen, wie: <Option Value =" foo "> bar </option>: args: - Wert - der Wert, der gegen" "" css self._el.find_elements (by.css_selector, CSS) Matched = falsefor opt in opts: self._setSelected (opt) Wenn nicht self.is_multip
Sehen Sie weiter, dass die Methode select_by_value () unsere Anforderungen erfüllt, mit der der Wertwert des <option> -Tags ausgewählt wird. Schließlich können Sie die folgende Option verwenden, um das Dropdown-Feld auszuwählen.
von selenium.webdriver.support.Select Import Select
...
sel = driver.find_element_by_xpath ("// auswählen [@id = 'status']"))
Select (sel) .Select_by_value ('0') #not überprüft
Select (sel) .Select_by_value ('1') #preliminary Review
Select (sel) .Select_by_value ('2') #Review bestanden
Select (sel) .Select_by_value ('3') #Die Bewertung fehlgeschlagen
Operationen in Java-Selenium
Natürlich ist die Verwendung in Java auch ähnlich, der einzige Unterschied liegt auf der Syntaxebene.
Paket com.jase.base;
import org.openqa.selenium.webdriver;
import org.openqa.selenium.by.byid;
import org.openqa.selenium.chrome.chromedriver;
import org.openqa.selenium.support.ui.Select;
öffentliche Klasse SelectTest {
public static void main (String [] args) {
Webdriver Driver = New Chromedriver ();
Driver.get ("http://www.you_url.com");
//…
SELECT SEL = NEW SELECT (TRAVER.FINDELement (byid.xpath ("// auswählen [@id = 'status']")));
Sel.SelectByValue ("0"); // nicht überprüft
Sel.SelectByValue ("1"); // vorläufige Überprüfung bestanden
Sel.SelectbyValue ("2"); // Überprüfung bestanden
Sel.SelectByValue ("3"); // Die Überprüfung geht nicht ab
}
}