[英]How to validate if two images in the same page are overlapping using selenium java webdriver.?
代码:
package tests;
import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.Rectangle;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import selenium.ChromeDriverSetup;
public class AmirsOverlappingTest extends ChromeDriverSetup {
public static void main(String[] args) {
WebDriver driver = startChromeDriver(); // wrapped driver init
driver.get("https://www.stackoverflow.com");
driver.findElement(By.xpath("//button[contains(@class,'js-accept-cookies')]")).click();
WebElement topBar = driver.findElement(By.className("s-topbar--container"));
WebElement topBarLogo = driver.findElement(By.xpath("//a[@class='s-topbar--logo js-gps-track']"));
WebElement footer = driver.findElement(By.id("footer"));
System.out.println("topBarLogo overlapping topBar: " + overlapping(topBarLogo, topBar));
System.out.println("footer overlapping topBar: " + overlapping(footer, topBar));
driver.quit();
}
public static Boolean overlapping(WebElement first, WebElement second) {
Boolean overlap = false;
Rectangle r1 = first.getRect();
Point topLeft1 = first.getLocation();
Point bottomRight1 = new Point(topLeft1.getX() + r1.getWidth(), topLeft1.getY() + r1.getHeight());
Rectangle r2 = second.getRect();
Point topLeft2 = second.getLocation();
Point bottomRight2 = new Point(topLeft2.getX() + r2.getWidth(), topLeft2.getY() + r2.getHeight());
if (topLeft1.getX() < bottomRight2.getX() && topLeft2.getX() < bottomRight1.getX() && topLeft1.getY() < bottomRight2.getY() && topLeft2.getY() < bottomRight1.getY()) {
overlap = true;
}
if (topLeft1.getX() > bottomRight2.getX() && topLeft2.getX() > bottomRight1.getX() && topLeft1.getY() > bottomRight2.getY() && topLeft2.getY() > bottomRight1.getY()) {
overlap = true;
}
return overlap;
}
}
输出:
Starting ChromeDriver 108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016}) on port 24985
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Pro 21, 2022 3:16:14 ODP. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
topBarLogo overlapping topBar: true
footer overlapping topBar: false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.