Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

773
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!