#1 楼
我认为您正在尝试检测元素是否重叠。在客户端,您将需要某种方式来告诉您两个元素是否发生冲突。我会为此或某些自定义JavaScript代码尝试jQuery冲突。将jQuery和jQuery冲突添加或注入到要测试的Web应用程序中
使用Selenium javascriptExecutor触发一个两个元素上的碰撞检测
检查返回值中是否存在碰撞
#2 楼
如果此重叠文本属于单个元素,则说标签或文本字段。您可以找到该元素并使用“ webElement.Text.Contains(”您要验证的文本“);”验证所需文本的方法。如果重叠的文本属于不同元素,则只需定位该特定元素并验证该元素的文本即可。
,会有所帮助。
谢谢
#3 楼
我的想法如下:driver = webdriver.Firefox()
e = driver.find_element_by_xpath("//someXpath")
location = e.location
size = e.size
print(location)
print(size)
如果我可以得到一个元素的大小和位置,并且给定一个元素是对称的,我也可以计算它的边界。只要一个要素的寄宿生不会与其他要素交叠,我会说它们没有重叠。
#4 楼
public boolean areElementsOverlapping(WebElement element1, WebElement element2) {
Rectangle r1 = element1.getRect();
Point topRight1 = r1.getPoint().moveBy(r1.getWidth(), 0);
Point bottomLeft1 = r1.getPoint().moveBy(0, r1.getHeight());
Rectangle r2 = element2.getRect();
Point topRight2 = r2.getPoint().moveBy(r2.getWidth(), 0);
Point bottomLeft2 = r2.getPoint().moveBy(0, r2.getHeight());
if (topRight1.getY() > bottomLeft2.getY()
|| bottomLeft1.getY() < topRight2.getY()) {
return false;
}
if (topRight1.getX() < bottomLeft2.getX()
|| bottomLeft1.getX() > topRight2.getX()) {
return false;
}
return true;
}
每个元素都有矩形尺寸,因此在这里我们要检查2个矩形是否相对于屏幕坐标系相互重叠。有关更多上下文,请阅读WebElement的getRect,getSize和getLocation方法。
PS:这是JAVA特定的答案,但是我希望您可以按照您的编程语言来使用它。
评论
请添加您的解决方案的说明。
– Nitin Rastogi
19年6月13日在10:18
更新@NitinRastogi
– Nipun Saini
19年8月2日在16:38