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 元素。
我正在努力让这个测试通过。 我正在检查网页 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 元素。