除非我使用断点,否则我的selenium代码中会出现NoSuchElementException

时间:2016-02-16 21:30:17

标签: c# selenium breakpoints

我在Selenium代码中遇到一个问题,就是当我使用断点运行代码时它运行良好,没有断点我得到异常......

这是代码:

IWebElement myField4 = driver.FindElement(By.Name("login_1method"));
myField4.Click();

IWebElement myField5 = driver.FindElement(By.CssSelector("body > div.content-wrapper.landing-page > div:nth-child(2) > div:nth-child(1) > article > section > ul > li:nth-child(1) > a"));
myField5.Click();

代码在没有断点的myfield5处给出错误,但如果它在第一行的断点处暂停,则会有效。

错误

  

NoSuchElementException未处理

1 个答案:

答案 0 :(得分:2)

WebDriver正在快速运行。您可以使用显式等待expected conditions来允许加载WebElement

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("body > div.content-wrapper.landing-page > div:nth-child(2) > div:nth-child(1) > article > section > ul > li:nth-child(1) > a"))).Click();

wait.Until会返回您等待的元素,因此您可以使用它来发送点击。