をやったことがなかった私は、要素が見えるまで待つためにさまざまな方法を試してみましたが、タイムアウトの例外を持っている ...入力フィールドにキーを送信しようとするが、それを行うことができない...セレンChromeDriver - 要素が見える
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();
この方法を使用
が私を与える常にタイムアウト:
public static void WaitForElementLoad(By by, int timeoutInSeconds)
{
if (timeoutInSeconds > 0)
{
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(timeoutInSeconds));
wait.Until(ExpectedConditions.ElementIsVisible(by));
}
}
このサイトを調べて、HTMLコードを見ずに答えることは困難である上の要素にスクロールするためにJavaScriptを使用して、他の操作を実行してみてください。いくつかのヒント: 'id = UserName'がページ内で一意であることを確認します。理論的には一意でなければなりませんが、開発者はこれを知らず、同じIDの2つの要素を追加します。 – krokodilko
明白な結論は、要素が見えないことが原因と思われます。ロケータを確認し、それらが一意であることを確認し、意図した要素を見つけます。 – JeffC
HTMLまたはURLを共有してください\ – iamsankalp89