这是我的场景"我正在提交表格,一旦我提交了它的导航到页面调用WebTable。我想在提交表格后确认现在是不正确的页面";
如何使用断言进行检查?请帮助selenium/Java/TestNG
根据我的经验,您基本上有两种选择。
- 等待URL包含您使用
driver.getCurrentUrl()
所期望的内容 - 等待只会出现在下一页上的特定元素
如果您还没有为执行重试而构建的类,则可以使用FluentWait。
单击表单后,您将使用Webdriverwait等待元素显示。您提取当前URL,并使用值进行检查并断言它。
submitBtn.click();
WebDriverWait(driver,10).until(ExpectedConditions.visibilityOfElementLocated(By.id("etc")));
expectedUrl = driver.getCurrentUrl();
Assert.assertTrue(expectedUrl.equals("something"));
Selenium为这种类型的验证提供了良好的实践,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加载速度比内容加载速度快,因此您将节省一些时间(因为您不需要执行任何其他验证(。