问题描述
这是我的情况“我正在提交表单,一旦提交其导航到页面调用WebTable。我想在提交表单后确认现在是不正确的页面”
如何使用断言检查此内容?请帮助硒/ Java / TestNG
解决方法
根据我的经验,您基本上有两种选择。
- 等待URL包含使用
driver.getCurrentUrl()
的期望值 - 等待将仅出现在下一页的特定元素
如果您尚未建立用于执行重试的类,则可以使用FluentWait。
,硒为这种类型的验证提供了一种很好的实践,而FluentWait来了:
FluentWait fluentWait = new FluentWait(webDriverBPO).withTimeout(Duration.ofSeconds(20)).pollingEvery(Duration.ofSeconds(1)).ignoring(NullPointerException.class);
在您上次执行操作后,您要做的就是等待URL包含您的期望值:
fluentWait.until(ExpectedConditions.urlContains("your URL or keyword from URL"));
您也可以尝试等待新页面中的任何元素,但是URL的加载速度比内容要快,因此可以节省一些时间(因为您无需执行任何其他验证)。
,单击表单后,您将等待使用Webdriverwait出现的元素。 您拉出当前URL并检查值并断言。
submitBtn.click();
WebDriverWait(driver,10).until(ExpectedConditions.visibilityOfElementLocated(By.id("etc")));
expectedUrl = driver.getCurrentUrl();
Assert.assertTrue(expectedUrl.equals("something"));