我在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未处理
答案 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
会返回您等待的元素,因此您可以使用它来发送点击。