O Selenium é uma ferramenta de teste de software automatizada de código aberto e portátil para testar aplicativos da Web que têm a capacidade de executar em diferentes navegadores e sistemas operacionais. O selênio não é realmente uma única ferramenta, mas um conjunto de ferramentas que ajudam os testadores automatizam seus aplicativos com mais eficiência.
Às vezes, encontraremos a caixa suspensa da tag <select> </leclect>. Não é necessariamente viável apenas clicar na opção na caixa suspensa. O selênio fornece uma classe selecionada especificamente para lidar com caixas suspensas.
<select id = "status" onchange = "" name = "status"> <opção value = ""> </pption> <opção value = "0"> não revisado </pption> <opção value = "1"> revisão preliminar passada </option> <option value = "2"> revisão aprovada </option> <opção = "3"> revisão falhou <//>
Operações em Python-Solenium
Tome o Python como um exemplo para visualizar a implementação do código do Selênio Select.py:
.../Selenium/webdriver/support/select.py
Classe Selecione:
def __init __ (self, wewebrem): "" construtor. É feito uma verificação de que o elemento fornecido é, de fato, uma tag de seleção. Caso contrário, uma inesperada é lançada. weweblement.tag_name.lower ()! = "Selecione": Levante INICIPEREDTEDTAGNAMEEXCECTION ("Selecionar apenas elementos <select> elementos, não em < %s>" %weblement.tag_name) self._els = weWeblementMulti = self.el.get_attribute ("múltipla"). Para visualizar a implementação da classe Select, você precisa localizar um elemento. E uma frase de exemplo é dada no exemplo.
Selecione (driver.find_element_by_tag_name ("select")). Select_by_index (2) def Select_by_index (self, index): "" Selecione a opção no índice fornecido. Isso é feito examinando o atributo "índice" de um elemento, e não apenas contando. NosuchElementException ("não conseguiu localizar o elemento com índice % d" % índice)Continue visualizando o uso do método select_by_index () e atenda aos requisitos da caixa suspensa fornecida acima, porque exige que as opções da caixa suspensa devem ter um atributo de índice, como index = "1".
def Select_by_value (self, valor): "" "Selecione todas as opções que tenham um valor que corresponda ao argumento. Ou seja, quando recebeu" foo ", isso selecionaria uma opção como: <opção value =" foo "> bar </pption>: args: - valor - o valor a corresponder contra" "" css = "opção [value = % s] self._el.find_elements (por.css_selector, css) correspondente = false para opt nos opts: self._setsEleted (opt) se não self.is_multiple: returnMatched = True se não corresponde:
Continue vendo que o método select_by_value () atende aos nossos requisitos, que é usado para selecionar o valor do valor da tag <cptey>. Por fim, você pode usar a opção a seguir para selecionar a caixa suspensa.
de selenium.webdriver.support.Select Import Select
...
SEL = driver.find_element_by_xpath ("// selecione [@id = 'status']")
SELECT (SEL) .SELECT_BY_VALUE ('0') #Não revisado
Selecione (SEL) .Select_By_Value ('1') #Preliminary Review
SELECT (SEL) .SELHECT_BY_VALUE ('2') #Review passou
Selecione (SEL) .Select_By_Value ('3') #A revisão falhou
Operações em Java-Solenium
Obviamente, o uso em Java também é semelhante, a única diferença está no nível da sintaxe.
pacote com.jase.base;
importar org.openqa.selenium.webdriver;
importar org.openqa.selenium.by.byid;
importar org.openqa.selenium.chrome.chromedriver;
importar org.openqa.selenium.support.ui.select;
classe pública SelectTest {
public static void main (string [] args) {
Driver webdriver = new Chromedriver ();
driver.get ("http://www.you_url.com");
//…
SELECT SEL = new Select (driver.findElement (byid.xpath ("// select [@id = 'status']"))));
Sel.SelectByValue ("0"); // não revisado
Sel.SelectByValue ("1"); // Revisão preliminar aprovada
Sel.SelectByValue ("2"); // Revisão aprovada
Sel.SelectByValue ("3"); // a revisão não passa
}
}