Webdriver等待无法找到存在的元素

时间:2019-11-01 14:24:54

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

您好,我对硒有些陌生,我正在尝试使工作页面自动化。我遇到的问题是,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);

1 个答案:

答案 0 :(得分:0)

尝试更改

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']")));