2
私は要素を見つけてテキストで入力するためにSeleniumを使用しています。 URLを参照すると、最初にページを読み込むテキストボックスが表示されます。アプリが読み込まれると、ログインユーザー名/パスワードが表示されます。 NoSuchElementExceptionを避けるために、ログインユーザー名とパスワードが表示されるまで待つだけです。私はthis postを参照しましたが、そこに解決策を得ることはできません。WebDriverWaitを使用しているにもかかわらずNoSuchElementException
テストを実行すると、要素が表示されるのを待たずにすぐにx.FindElement(By.Id("UserName")
にNoSuchElementException
で失敗します。
using (IWebDriver driver = new ChromeDriver(@"<my path>"))
{
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("<my url>");
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(600));
var userName = wait.Until(x => x.FindElement(By.Id("UserName")));
userName.SendKeys("username");
IWebElement pass = driver.FindElement(By.Id("Password"));
pass.SendKeys("password");
}
私はここで間違っていますか?コードを探してから、UserName
が存在するのを待ってから探してください。
ありがとう!私はちょうど 'wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id(" UserName "));)を使用して終了し、それは働いた。 – tnw