j'essaie d'envoyer des clés champ de saisie, mais ne peut pas le faire ... Je ai essayé différentes façons d'attendre jusqu'à ce que l'élément est visible, mais a des exceptions ... délai d'attenteSélénium ChromeDriver - élément visible ne se
IWebElement userName = driver.FindElement(By.Id("UserName"));
IWebElement userPassword = driver.FindElement(By.Id("Password"));
IWebElement subButton = driver.FindElement(By.XPath(("//button[contains(.,'Вхід')]")));
while (true)
{
userName = driver.FindElement(By.Id("UserName"));
if (userName.Displayed)
{
userName.SendKeys("test");
break;
}
}
subButton.Click();
cette méthode me donne toujours TimeOut:
public static void WaitForElementLoad(By by, int timeoutInSeconds)
{
if (timeoutInSeconds > 0)
{
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutInSeconds));
wait.Until(ExpectedConditions.ElementIsVisible(by));
}
}
Il est difficile de répondre sans examiner ce site et regardant le code HTML. Quelques conseils: vérifiez si 'id = UserName' est unique dans la page, en théorie il doit être unique, mais le développeur peut ne pas le savoir et a ajouté deux éléments avec le même identifiant' UserName'. – krokodilko
La conclusion évidente semble être que l'élément n'est pas visible. Vérifiez vos localisateurs et assurez-vous qu'ils sont uniques et localiser l'élément que vous avez prévu. – JeffC
S'il vous plaît partager HTML ou URL \ – iamsankalp89