Selenium junit 测试失败,驱动程序 URL 过早

Selenium junit test failing, driver taking URL too soon

我正在努力让这个测试通过。 我正在检查网页 URL 是否等于预期的 URL.

但是,驱动程序会在加载下一页之前继续获取 URL,因此它会不断检查旧的 URL 与预期的

    driver.findElement(By.id("keywords")).sendKeys("Arlo Lamp");
    driver.findElement(By.className("search-form")).submit();
    
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@id='onetrust-accept-btn-handler']"))).click();
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//ol[@class='product-list product-list-main']/li//a"))).click();
    
    String url = driver.getCurrentUrl();
    System.out.println(url);
    assertEquals("https://www.dunnesstores.com/p/arlo-lamp/7761102?colour=Cream", url);

这应该是它声明的页面

相反,它是点击它一直断言的项目之前的页面

您可以像这样等待 URL:

new WebDriverWait(driver, 10)
        .until(webDriver -> webDriver.getCurrentUrl().equals("https://your.url"));

或等待特定于该页面的某些 UI 元素。