Como verificar se existe um elemento no selênio

Como verificar se existe um elemento no selênio

Esta posta. Usando alguns exemplos simples e fáceis por meio da codificação, demonstramos como verificar a existência de elementos no selenium webdriver. Primeiro, explicamos o que são importantes webElements no selênio e como você pode encontrar os elementos no selênio com a ajuda de diferentes exemplos. Vamos primeiro discutir o que são.

Selenium webdriver e webElements de selênio

Selenium webdriver facilitou a vida dos programadores com seus recursos úteis. Selenium webdriver refere-se às ligações de idiomas e às muitas implementações do código de controle do navegador. Um elemento HTML é chamado de WebElement que permite aos usuários controlar os testes automatizados. Através do webElements, o Selenium WebDriver oferece interações bem organizadas da página da web, como encontrar os elementos, obter as propriedades do atributo, confirmar o texto no webElement e mais. Podemos automatizar uma ampla variedade de ambientes de teste com a orientação do selênio.

Comando para encontrar um elemento no selênio

O objeto "por" é um parâmetro para o comando de elemento encontrado que entrega um objeto do tipo webElement. Várias técnicas de localizador, como nome, ID, className, XPath, Link Text, etc. pode ser usado com o objeto "por".

Aqui está a sintaxe para encontrar um elemento:

WebElement elementName = Driver.FindElement (por.Locatorstrategy ("locatorValue"));

Qualquer um dos seguintes valores, incluindo o nome, ID, nome da classe, nome da tag, texto de link, teste de link parcial e XPath, pode ser utilizado para a estratégia do localizador.

Qualquer um desses valores pode ser inserido no localizador para localizar o elemento da web.

Como verificar se existe um elemento no selênio

Várias maneiras podem ser adotadas para verificar se um determinado elemento está no selanium webdriver ou não. Aqui está um resumo das maneiras mais típicas de descobrir se os elementos existem no webdriver ou não.

Elementinelement (…) o segundo getElementsByclassName (…)
Elementinelement contém (elementName, ElementValue) (nome, valor).

O resultado é booleano. Se o elemento estiver presente, produzirá um valor de verdadeiro. Caso contrário, ele responde falso. Fornecer um nome nulo também produz um resultado verdadeiro, enquanto fornece uma string produz um resultado falso.

Agora, para entender este procedimento, iremos para a nossa interface e executaremos alguns códigos de exemplo.

Exemplo 1:

Este primeiro exemplo é muito básico e simples, criado para iniciantes e desenvolvedores de nível experiente. O programa começa com a importação do motorista.Encontre para obter os weblements com o nome da tag para verificar a existência dos elementos da web nele. Fornecemos o seguinte comando completo ao qual você pode se referir. Depois disso, explicamos esse código em pedaços para que você possa entender que ação eles executam.

importação org.OpenQa.selênio.Por;
importação org.OpenQa.selênio.WebDriver;
importação org.OpenQa.selênio.WebElement;
importação org.OpenQa.selênio.cromada.Cromedriver;
classe pública Checkifexists
public static void main (string [] args)

Sistema.SetProperty (“WebDriver.cromada.motorista", "./Drivers/Chromedriver.exe");
WebDriver Driver1 = new Chromedriver ();
driver1.Get (“http: // Demoqa.com/registro/”); driver1.gerenciar().Timeouts ().Impliclywait (2000, TimeUnit.Milissegundos);
Lista dd = driver1.FindElements (por.tagname ("selecione"));
if (dd.tamanho ())> 0) sistema.fora.println ("existe suspenso");
outro


Sistema.fora.println ('sem suspensão ");-

Agora, vamos tentar entender o código anterior.

Se quisermos verificar se os suspensos existem ou não, devemos saber onde as suspensas estão presentes na estrutura do Down. Se você inspecionar um suspensão em um site específico, os suspensos estarão sob as tags selecionadas. A captura de tela é anexada para ver onde podemos encontrar a guia Selecionar e suspenso.

Se houver alguma tags selecionadas presentes na página da web específica, as suspensas estarão na página. Se não houver tag de seleção presente, não há suspensões presentes ou existentes. Então, precisamos usar esta dica:

Lista dd = driver.FindElements (por.tagname ("selecione"));

Usamos o motorista.Método FindElements () para determinar se um elemento está presente em uma página da web. Como sabemos, uma lista de webElements está localizada usando o parâmetro "por locator" que é retornado pela função findElements (). Se o elemento for encontrado, uma lista de webElements diferentes de zero será retornada. Caso contrário, uma lista do tamanho 0 é retornada. Como resultado, a duração da lista pode ser utilizada para determinar se uma entrada está presente ou não.

Lembre -se de que, ao procurar o elemento, essa função espera até que a espera "implícita" seja dada para o motorista conforme damos em nossa codificação:

driver1.gerenciar().Timeouts ().Impliclywait (2000, TimeUnit.Milissegundos);

Se soubermos que um elemento está disponível imediatamente na página da web, podemos alterar o valor do Wait "implícito" de volta ao seu valor padrão depois de defini -lo como 0, verificando a presença de elementos e acelerando o processo.

Se você colocar apenas "selecionar", não poderá obter nenhuma saída. Ele só vai para a tag de seleção e aponta -a.

Isso é tudo. Se você deseja verificar se os desmaios existem ou não, você deve armazená -lo na variável "listar webElement".

Depois de executar o código, obtemos o resultado de que um "suspenso existe", como você pode ver na ilustração fornecida.

Exemplo 2:

No exemplo anterior, usamos o método de encontrar um elemento por tagname para ver se existe um elemento suspenso. Agora, a partir deste exemplo, você saberá como encontrar os elementos usando os métodos de tentativa e captura.

Vamos executar o código e verificar como usá -lo:

Sistema.SetProperty (“WebDriver.Gecko.driver ”,“/users/abc/desktop/c/dz/biblioteca/xyz ”);
WebDriver Driver1 = new Firefoxdriver ();
driver1.Get (https: // www.Google.com)
tentar
driver1.FindElement (por.xpath (“// input [@id = 'djahvljadhlkgj'))
Sistema.fora.Printin (elemento existe);

Catch (NosuchElementException e) Sistema.fora.printin (“elemento não existe);

Para verificar se o elemento existe ou não, usamos uma tentativa de captura de bloco. Tudo o que precisamos fazer é tentar encontrar o elemento.

motorista.FindElement (por.xpath (“// input [@id = 'djahvljadhlkgj']”));

Agora, o snippet de código anterior encontra o elemento usando o XPath:

Catch (NosuchElementException e) Sistema.fora.printin (“Elemento não existe);

Agora, se o elemento não for encontrado no bloco de captura, significa que não há elemento presente na página com esse tipo de localizador neste XPath. Então, o erro é capturado para que possamos pegar a exceção.

Depois de executar o código, ele lança o erro "Não tal elemento". É isso que queremos recuperar no bloco de captura:

tentar
drive1r.FindElement (por.xpath (“// input [@id = 'djahvljadhlkgj'))
Sistema.fora.Printin (elemento existe);

Catch (NosuchElementException e) Sistema.fora.printin (“elemento não existe);

O que fizemos é que tentamos um bloco. Nesse bloqueio de tentativa, descobrimos o elemento que queremos encontrar usando qualquer localizador que queira usar. Se o elemento for encontrado, ele simplesmente executa e a declaração diz que o elemento existe e nunca vai para o bloco de captura. Se o elemento não for encontrado, ele não joga esse elemento. Em seguida, ele simplesmente executa o "elemento não encontrado" no bloco de captura.

Exemplo 3:

Nesse caso, usamos o driver.Encontre elementos por id. Então, temos a contagem desse elemento em particular. Se não for zero, significa que o elemento está presente. Sempre tente os elementos de localização, não o elemento de localização. A diferença entre os dois é que, se você usar o elemento de localização, ele lança a exceção "nenhum elemento encontrado". Mas os elementos de localização não lançam esta exceção, mesmo que o elemento esteja presente ou não. Lembre -se de usar esse método de encontro de elementos e verifique a contagem desse valor ou aquela lista desse elemento. Se a contagem for 0, isso significa que o elemento não está presente.

if (driver1.FindElements (por.Id ("abc")).Contar!= 0)
console.WriteLine ("Elemento está presente");
outro
console.WriteLine ("elemento não está presente");

Neste código, recebemos a contagem de 0, o que significa que o elemento não está presente.

Conclusão

Discutimos sobre o uso da codificação para determinar se os elementos no selenium webriver existem ou não. A idéia do parâmetro para encontrar o comando elemento que retorna um objeto do tipo WebElement é mostrado aqui a partir dos exemplos. Neste artigo, entendemos o conceito de como encontrar a existência de elementos da Web em Selenium WebDrivers usando diferentes métodos. Você pode se referir a este artigo desde o início ao fim para entender melhor todo o conceito.