在这里,我有两个下拉菜单,一个是“选择驾驶员”,另一个是“选择汽车”,我需要一次从两个下拉菜单中选择一个值。
this is for "select Driver" drop down
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h1[contains(., 'Dashboard')]")));
driver.get("https://ecabportal.azurewebsites.net/addassignVechile");
new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[@id='load']")));
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.select2-selection__rendered"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[contains(., 'Malveena')]"))).click();
this is for "Select Car" drop down
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h1[contains(., 'Dashboard')]")));
driver.get("https://ecabportal.azurewebsites.net/addassignVechile");
new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[@id='load']")));
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.select2-selection__rendered"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[contains(., 'X5')]"))).click();
“选择驱动程序”下拉列表正在工作,但是在控制台中出现错误,如“线程“主”中的异常” org.openqa.selenium.TimeoutException:预期条件失败:等待By.xpath所定位元素的可见性:// h1 [contains(。,'Dashboard')](以500毫秒间隔尝试20秒)“
由以下原因引起:org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // h1 [contains(。,'Dashboard')] “}
答案 0 :(得分:0)
在这种情况下有两个例外:1)TimeOutException和2)NoSuchElementException。在您的情况下,即使在20秒后,您在explicitwait中使用的路径也找不到任何元素。出于某种原因,硒无法找到元素,并且失败了。 您可以在应用程序中手动检查一次路径,因为它无法通过提供的内容识别任何元素。
出现异常时,当我们使用explicitWait且给定时间在满足上述条件之前到期时,TimeOutException将引发。您可以确定要解决的问题。