【问题标题】:Webdriver wait cant find element that existsWebdriver等待找不到存在的元素
【发布时间】:2019-11-01 14:24:54
【问题描述】:

您好,我对 selenium 有点陌生,我正在尝试自动化工作页面。我遇到的问题是 webdriver 等待找不到我的元素,但如果我注释掉等待部分,我可以使用这些元素。在我切换框架后,问题似乎开始了。之后我还需要执行什么其他步骤吗?

更新:当我调试并单步执行时,它工作正常。但在测试运行中从来没有工作过

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(120));  
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.FrameToBeAvailableAndSwitchToIt(By.CssSelector("iframe[src='/CreditAdmin/']")));   
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.CssSelector("input[aria-label='Filter for column']"))); //This never finds the Element

IWebElement companySearch = driver.FindElement(By.CssSelector("input[aria-label='Filter for column']"));  //This works fine if I comment out previous
companySearch.SendKeys(fieldValue);

【问题讨论】:

  • 请包含html源代码

标签: c# selenium-webdriver selenium-chromedriver webdriverwait


【解决方案1】:

尝试改变

wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.CssSelector("input[aria-label='Filter for column']")));

到:

wait.Until(c => c.FindElement(By.CssSelector("input[aria-label='Filter for column']")));

【讨论】:

  • 还是同样的问题 :(
猜你喜欢
  • 2016-12-25
  • 1970-01-01
  • 2016-06-14
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 2012-07-28
相关资源
最近更新 更多