我的ChromeDriver不等待imlicityWaits,只等待ExplicitWaits中的ElementExists所有其他抛出错误。我不能使用除ElementExits之外的其他ExpectedConditions。
public async Task LoginPage()
{
await Task.Run(() =>
{
driver.Navigate().GoToUrl(@"https://www.google.de/");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
Console.WriteLine("10 Sec");
new WebDriverWait(Globals.webDriverChrome.driver, TimeSpan.FromSeconds(30)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath("//*[@id='gbqfbb']")));
Console.WriteLine("Hahahahha i did the job");
});
}
检查您通过ID引用的这个元素,也许它以前加载过。
public static void Wait(int seconds)
{
DriverContext.Driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(seconds);
new WebDriverWait(DriverContext.Driver, TimeSpan.FromSeconds(seconds)).Until(ExpectedConditions.TextToBePresentInElement(DriverContext.Driver.FindElement(By.Id("MyAccountLink")), "My Account"));
}
我一直在为自己使用这个功能,只需通过ID 找到查找元素
修复了这个问题。Nuget-Fody/Costura插件是个问题。已卸载,现在可以工作了。