Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

768
Visualizações
no existe tal elemento: no se puede ubicar el elemento: {"método":"css selector","selector":"#Password"} usando Selenium y C#

Escribí una prueba simple para iniciar sesión.

 namespace Seleniumtest.Customer { [TestFixture] class LoginTest :TestBase { [Test] public void LoginWithPhoneNumber() { webDriver.Navigate().GoToUrl("https://test123.ifc.ir/login"); webDriver.FindElement(By.Id("EmailOrPhoneNumber")).SendKeys("09108599423"); webDriver.FindElement(By.ClassName("buttons")).Click(); var input = webDriver.FindElement(By.Id("Password")); Assert.That(input.Displayed, Is.True); } } }

Este programa hará clic en iniciar sesión y tendrá inicio de sesión y encontrará una contraseña de entrada de vista parcial, pero solo insertará el valor en el nombre de usuario y hará clic en enviar pero nunca encontrará la contraseña.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El problema es que en la página uno tiene un nombre de username y clickable botón en el que se puede hacer clic, y una vez que haga clic en el botón, lo redirigirá a una nueva página donde puede proporcionar la contraseña.

Sin embargo, esta nueva página no se representa correctamente y esa es la razón por la que recibe

 no such element: Unable to locate element : {"method":"css selector","selector":"#Password"}

En los enlaces de C#-Selenium, puede usar la explicit wait como se muestra a continuación:

 WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); IWebElement input = wait.Until(e => e.FindElement(By.Id("Password")));

y ahora la entrada es un elemento web, puede ingresar la contraseña con el método SendKeys .

 input.SendKeys("your password");

Link de referencia

over 4 years ago · Santiago Trujillo Relatório

0

Una vez que invoque la URL a través de get() , complete el campo EmailOrPhoneNumber y haga clic en el botón Enviar , necesitará un poco de tiempo para que el campo Contraseña sea visible e interactuable .


Solución

En estos casos, para invocar Click() en el elemento deseado, debe inducir WebDriverWait para ElementToBeClickable y puede usar cualquiera de las siguientes estrategias de localización :

  • identificación :

     new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.Id("Password"))).Click();
  • Selector Css :

     new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("#Password"))).Click();
  • XPath :

     new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='Password']"))).Click();

Referencias

Puede encontrar un par de discusiones detalladas relevantes en:

  • C# selenium no puede localizar el botón a través de xpath
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda