我不知道如何比较两个照片地址,我试着搜索了几个小时的答案,仍然一无所获。所以我来到这里,我在寻找答案
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class FirstAutomatedTest {
private WebDriver driver;
@BeforeMethod
public void beforeTest() {
System.setProperty("webdriver.chrome.driver", "C:/drivers/chromedriver.exe");
driver = new ChromeDriver();
}
@Test
public void myFirstTest() {
driver.navigate().to("http://michalmarek.great-site.net/tytul/?i=2");
driver.findElements(By.tagName("img"));
driver.navigate().refresh();
driver.findElements(By.tagName("img"));
}
@AfterMethod
public void afterTest() {
}
}
我假设您正在尝试比较两个图像源而不是图像。如果这是你的情况,你可以像下面这样做,
:
driver.navigate().to("https://www.stackoverflow.com");
String orginalImage = driver.findElement(By.xpath("//div[@style='clip-path:url(#curve)']/div/img"))
.getAttribute("src");
System.out.println("Original image source: " + orginalImage);
driver.navigate().refresh();
String refreshedImage = driver.findElement(By.xpath("//div[@style='clip-path:url(#curve)']/div/img"))
.getAttribute("src");
System.out.println("Refreshed image source: " + refreshedImage);
Assert.assertEquals(orginalImage, refreshedImage, "Both image sources are not same.");
:
Original image source: https://cdn.sstatic.net/Img/home/illo-code.svg?v=b7ee00fff9d8
Refreshed image source: https://cdn.sstatic.net/Img/home/illo-code.svg?v=b7ee00fff9d8
如果你想逐像素比较图像,那么你需要尝试这些,
- 如何在Java中比较两个图像
- 如何使用java比较图像的相似性
欢迎来到SO。
根据你的评论,你想检查所有的图片源位置应该是不同的,当页面刷新。
要做到这一点,我们需要存储第一个图像位置,并在刷新后比较这个列表。
@Test
public void myFirstTest() {
driver.navigate().to("http://michalmarek.great-site.net/tytul/?i=2");
List<String> firstImages = driver.findElements(By.tagName("img"))
.stream()
.map(e -> e.getAttribute("src"))
.collect(Collectors.toList());
driver.navigate().refresh();
List<String> lastImages = driver.findElements(By.tagName("img"))
.stream()
.map(e -> e.getAttribute("src"))
.collect(Collectors.toList());
Assertions.assertTrue(Collections.disjoint(firstImages, lastImages));
}
集合。disjoint如果两个指定的集合没有相同的元素,则返回true
。