我对硒很陌生,我正在尝试编写一个代码,该代码将登录到我的网站并检查下拉列表并单击按钮。单击按钮后,将触发HTTP Angular请求并显示结果。我的要求是等待响应并使用Selenium检查响应,然后从我的网站注销
driver = new ChromeDriver();
driver.get("https://url");
driver.findElement(By.id("userId")).sendKeys("USERID");
driver.findElement(By.id("password")).sendKeys("PASSWORD");
driver.findElement(By.id("Submit")).click();
Select dropdownA = new Select(driver.findElement(By.id("mySelectA")));
dropdownA.selectByValue("2");
Select dropdownB = new Select(driver.findElement(By.id("mySelectB")));
dropdownB.selectByValue("5");
driver.findElement(By.id("findroute")).click();
/***/Here i need to wait for the angular http request to reply and check for the data displayed***
driver.findElement(By.id("userTemp")).click();
driver.findElement(By.linkText("Logout")).click();
driver.close();
首先,让我们在启动驱动程序后添加一些隐式等待。现在这是硒等待任何元素的默认时间,包括角度。
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
现在让我们考虑元素 A 在用户执行某些操作后出现。元素A是有角度的,我的意思是。现在检查元素是否存在。
driver.findElement(By.id(""));
//Perform the required operations after finding the element
脚本等待 60 秒,以便显示角度元素。如果现在我们将得到元素未找到异常。
其次,我们可以利用显式等待来实现相同的目的。
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
或
wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
希望这对你有帮助。谢谢。