Selenium est un outil de test de logiciel automatisé open source et portable pour tester des applications Web qui ont la possibilité d'exécuter différents navigateurs et systèmes d'exploitation. Le sélénium n'est vraiment pas un seul outil, mais un ensemble d'outils qui aident les testeurs à automatiser leurs applications plus efficacement.
Parfois, nous rencontrerons la boîte déroulante de la balise <lect> </lect>. Il n'est pas nécessairement possible de simplement cliquer sur l'option dans la boîte déroulante. Selenium fournit une classe sélectionnée spécifiquement pour gérer les boîtes déroulantes.
<sélectionner id = "status" onchange = "" name = "status"> <option value = ""> </ option> <option value = "0"> non examiné </ option> <option value = "1"> examen préliminaire passé </ option> <option Value = "2"> Revue réalisée </ option> <option Value = "3"> Review Failli </popoption> </lect>
Opérations en python-sélénium
Prenez Python comme exemple pour afficher l'implémentation du fichier sélect.py de code Selenium:
... / sélénium / webdriver / support / select.py
Sélection de classe:
Def __init __ (self, wewebrem): "" Constructeur. Un contrôle est fait que l'élément donné est, en effet, une balise de sélection. Si ce n'est pas le cas, alors une inattendue inattendue est lancée. "SELECT": River inattenduttagNameException ("SELECT Fonctionne uniquement sur <lelect> des éléments, pas sur <% s>"% weblement.tag_name) self._el = weweblementMulti = self._el.get_attribute ("multiple") self.is_multiple = multi-et multi! = "false" Pour afficher la mise en œuvre de la classe Select, vous devez localiser un élément. Et une exemple de phrase est donnée dans l'exemple.
SELECT (Driver.Find_Element_By_Tag_Name ("SELECT")). SELECT_BY_INDEX (2) DEF SELECT_BY_INDEX (self, index): "" Sélectionnez l'option à l'index donné. Cela se fait en examinant l'attribut "index" d'un élément, et pas seulement en comptant.:args:- Index - L'option à cet index sera sélectionnée "" "Match = str (index) correspondant = Falsefor Opt dans Self.options: if opt.get_attribute (" index ") == match: self._setselected (opt) If Not Not.is_Multile: Retourmatched = TrueSed: Not Nothel.is_Multiled NosuchementElementException ("Impossible de localiser les éléments avec l'indice% D"% Index)Continuez à afficher l'utilisation de la méthode select_by_index () et répondre aux exigences de la zone déroulante ci-dessus, car elle nécessite que les options de la boîte déroulante doivent avoir un attribut d'index, tel que index = ”1”.
def select_by_value (self, valeur): "" "Sélectionnez toutes les options qui ont une valeur correspondant à l'argument. C'est-à-dire que lorsqu'on lui donne" foo ", cela sélectionnerait une option comme: <option valeur =" foo "> bar </ option>: args: - valeur - la valeur à correspondre à" "" CSS = "Option [valeur =% s]"% self._escapestring (valeur) opts = self._el.find_elements (by.css_selector, css) correspondant = falsefor Opt dans Opts: self._setSelected (opt) Si pas self.is_multiple: returnmatched = trueif non correspondant: augmenter la valeur nosuchementElement ("ne peut pas localiser l'option avec la valeur:% s"% valeur) Continuez à voir que la méthode select_by_value () répond à nos exigences, qui est utilisée pour sélectionner la valeur de la valeur de la balise <option>. Enfin, vous pouvez utiliser l'option suivante pour sélectionner la boîte déroulante.
à partir de selenium.webdriver.support.Select Import Select
...
sel = driver.find_element_by_xpath ("// select [@ id = 'status']")
Sélectionnez (sel) .select_by_value ('0') #not examiné
SELECT (SEL) .Select_by_value ('1') #Preliminary Review
SELECT (SEL) .Select_by_value ('2') #review a réussi
Sélectionnez (sel) .select_by_value ('3') #La révision a échoué
Opérations en Java-Selenium
Bien sûr, l'utilisation en Java est également similaire, la seule différence est au niveau de la syntaxe.
package 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;
classe publique selectTest {
public static void main (String [] args) {
WebDriver Driver = new ChromEdriver ();
driver.get ("http://www.you_url.com");
//…
SELECT SEL = NEW SELECT (Driver.Findelement (ById.xpath ("// Select [@ id = 'status']")));
sel.SelectByValue ("0"); // non examiné
sel.SelectByValue ("1"); // Un examen préliminaire a réussi
sel.SelectByValue ("2"); // Examen passé
sel.SelectByValue ("3"); // La revue ne passe pas
}
}