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();

   }