Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

769
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda