Assert + Selenium 4相对定位符

问题描述 投票:0回答:1

我想知道我是否可以在断言中使用新的Selenium 4相对定位符。

例如类似这样的内容:

Assert.assertTrue("", myWonderfulLogo.above(myWonderfulNavBar));

有一种弯曲的方法可以做到这一点,但我想知道是否有更简单的方法可以做到这一点:https://github.com/angiejones/selenium-relative-locators/blob/master/src/test/java/books/RelativeLocatorsTests.java

提前感谢!

java selenium assert assertion
1个回答
0
投票

如果您的目标是编写测试以查看myWonderfulLogo是否高于myWonderfulNavBar,则相对定位符可以为您提供帮助,尽管首先需要将其转换为Web元素。所有相对定位器正在做的事情是进一步限制常规位置(xpath,按id,按名称,css选择器等)。

例如,如果我想查找具有特定id的元素,但是我只想查找某个特定元素之上的元素(而不是搜索整个文档),那么相对定位符就可以了。

说您的myWonderfulLogo具有以下html:

<img id="logo" ... />

并且您的myWonderfulNavBar具有以下html:

<img id="nav" ... />

然后编写测试以确保您的徽标位于导航栏上方,您可以编写如下内容:

var myWonderfulLogo = driver.findElements(By.id("logo").above(By.id("nav")));
Assert.assertTrue(myWonderfulLogo.size() > 0);

如果您的徽标不在导航栏上方,则findElements将找不到任何元素,因此比较它是否大于0意味着至少发现了一件事。希望能帮助解释问题。

值得深思的是:您的测试如何在不同的设备/屏幕尺寸上进行?有了这个新的功能,测试响应式网站时,开发人员将有更多的思考:)

© www.soinside.com 2019 - 2024. All rights reserved.