Prezado Daniel,
o DISPLAYED do Chromedriver não está retornando True or False. estou tendo muito problema, para testar uma página HTML que tem vários campos de formulários ocultos, mas antes de preencher e testar se o valor foi preenchido o webdriver precisa verificar primeiro se o campo está habilitado na página HTML e ao executar o teste do código abaixo, o sistema informa " Message: OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"css selector","selector":"#WUC_FornecedorCadastro1_txtInscrMun"} (Session info: chrome=81.0.4044.138).
Por favor, o que está errado no meu código abaixo, obrigado.
Na classe DSL:
public class dsl { private IWebDriver driver; public dsl(IWebDriver driver) { this.driver = driver; }
public void escrever(By by, string texto)
{
driver.FindElement(by).Clear();
driver.FindElement(by).SendKeys(texto);
}
public void escrever(string id_campo, string texto)
{
escrever(By.Id(id_campo), texto);
}
public bool esteElementEstaHabilitado(string nomeElemento)
{
//deve retornar True or False se o elemento do campo está ativo
return (driver.FindElement(By.Id(nomeElemento)).Displayed);
}
===================================================
Criei uma Página PageObject "poAbaDadosCadastrais"
public class poAbaDadosCadastrais
{
private dsl Dsl;
private IWebDriver driver;
private string byTxtInscricaoEstadual = "WUC_FornecedorCadastro1_txtInscrEst";
private string byTxtInscricaoMunicipal = "WUC_FornecedorCadastro1_txtInscrMun";
private string byRdoTipoDeRegistro = "WUC_FornecedorCadastro1_rb_RS";
public void PreencherInscricao(string estadual,string municipal) { if (Dsl.esteElementEstaHabilitado(byTxtInscricaoEstadual)) { //Se este campo estiver visível na página html, preencha o campo Dsl.escrever(byTxtInscricaoEstadual, estadual); }
if (Dsl.esteElementEstaHabilitado(byTxtInscricaoMunicipal))
{
//Se este campo estiver visível na página html, preencha o campo
Dsl.escrever(byTxtInscricaoMunicipal, municipal);
}
}
===============================================
Na página de Teste
using OpenQA.Selenium; using SystemCaufesp.Fixtures; using Xunit; using SystemCaufesp.PageObject; using SystemCaufesp.Dsl;
namespace SystemCadastroDeEntidades { [Collection("Chrome Driver")] public class TestarAbaDadosCadastrais { private readonly IWebDriver driver; private dsl dsl; private poAbaDadosCadastrais poAbaDadosCadastrais;
public TestarAbaDadosCadastrais(TestFixture fixture)
{
driver = fixture.Driver;
dsl = new dsl(driver);
poAbaDadosCadastrais = new poAbaDadosCadastrais(driver);
}
[Fact]
public void TestarPreechimentoDaAbaDadosCadastrais()
{
poAbaDadosCadastrais.PreencherInscricao("123456";"456789");
}