Chrome 中的 WebDriverWait,Selenium C#
WebDriverWait in Chrome, Selenium C#
我最近将我的 WebDriver 从 Firefox 更改为 ChromeDriver,我以前用来等待元素可以与之交互的等待步骤不再有效
WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
w.IgnoreExceptionTypes(typeof(StaleElementReferenceException), typeof(InvalidElementStateException));
w.Until(ExpectedConditions.ElementExists(By.Id("formSubmit")));
我现在经常收到类似 "Element is not clickable at point (964, 776). Other element would receive the click: " 的错误,即使该元素在页面上可见。
有没有办法告诉 webdriver 等到一个元素可以与之交互,或者更好的是,我可以更改任何设置让 Selenium 知道我正在使用 Chrome 以便我现有的代码有效?
Selenium C# Binding(2.46) 的最新版本为名为 ElementToBeClickable
的预期条件提供了一种方法。试试看。不过,这是 Chrome 的一个非常常见的问题。
方法不止于此
这是我的最爱
try{
//for example
site.FindElement(By.Id("ctl00_ContentPlaceHolderBody_drp_City")).Click();
}catch{
Thread.Sleep(Time in sec);
site.FindElement(By.Id("ctl00_ContentPlaceHolderBody_drp_City")).Click();
}
我最近将我的 WebDriver 从 Firefox 更改为 ChromeDriver,我以前用来等待元素可以与之交互的等待步骤不再有效
WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
w.IgnoreExceptionTypes(typeof(StaleElementReferenceException), typeof(InvalidElementStateException));
w.Until(ExpectedConditions.ElementExists(By.Id("formSubmit")));
我现在经常收到类似 "Element is not clickable at point (964, 776). Other element would receive the click: " 的错误,即使该元素在页面上可见。
有没有办法告诉 webdriver 等到一个元素可以与之交互,或者更好的是,我可以更改任何设置让 Selenium 知道我正在使用 Chrome 以便我现有的代码有效?
Selenium C# Binding(2.46) 的最新版本为名为 ElementToBeClickable
的预期条件提供了一种方法。试试看。不过,这是 Chrome 的一个非常常见的问题。
方法不止于此 这是我的最爱
try{
//for example
site.FindElement(By.Id("ctl00_ContentPlaceHolderBody_drp_City")).Click();
}catch{
Thread.Sleep(Time in sec);
site.FindElement(By.Id("ctl00_ContentPlaceHolderBody_drp_City")).Click();
}