当前位置: 首页 > 知识库问答 >
问题:

使用WebDrivePage对象模型处理大量WebElements的断言

赵俊远
2023-03-14

我有一个包含50多个WebElements的页面,我希望这些Web元素具有正确的文本。我使用的是页面对象,因此测试与对象是分开的,测试是断言必须存在的地方。

我不希望每个元素有50个单独的@Test,所以我需要某种集合、列表或数组来保存文本值,然后针对每个值进行断言。但是,如果一个文本值错误,我不希望测试失败(很可能是一个页面经常更新并且包含50个值的情况)。这意味着为每个断言分别设置@Test?

所以我需要在PageObject中为每个元素做一个driver.find元素(By......

然后,我需要使用一个字符串来传递WebElement的值。getText()),转到测试类,最好使用一个html" target="_blank">方法。

我需要为Test类中的50个值中的每一个断言文本是正确的,最好是在一个@Test下,但是如果一个值不正确,就不能让测试失败。

我已经为此绞尽脑汁好几个小时了,如果不清楚,我很抱歉,并为这段文字道歉;我是一个初学者-如果我能澄清,请问。很明显,我缺少一个共同的方法。

谢谢

共有1个答案

谭京
2023-03-14

如果您使用的是JUnit4.0,那么可以使用参数化测试。

  • 带注释的测试类@RunAnd(Parameterized.class)
  • 带注释的静态方法@Parameters(返回参数的嵌套数组)
  • 类中的测试将为每组参数运行一次

上面wiki链接中的示例:

@RunWith(Parameterized.class)
public class FibonacciTest {
    @Parameters
    public static Collection<Object[]> data() {
        return Arrays.asList(new Object[][] {

                 { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 },{ 6, 8 }  
           });
    }

    private int fInput;

    private int fExpected;

    public FibonacciTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
    }

    @Test
    public void test() {
        assertEquals(fExpected, Fibonacci.compute(fInput));
    }
}
 类似资料:
  • 我的网页上有一个按钮,一旦输入所需的信息,我想点击它。我目前正在使用By来建立页面的所有元素,但想使用WebElements作为这个按钮,然后使用Actions稍后单击它。我应该如何在我的页面对象类中做到这一点。 我尝试了以下方法: 但在以TestNG的形式运行测试类时,它在WebElement行上显示空指针异常。也尝试使用By执行此操作,但按钮无法收到单击。它与WebElements配合得非常好

  • 问题内容: 我正在制作一个运行ASP.NET WebService的Android应用程序。Webservice发送一个JSON对象,应用程序解析该对象并显示在屏幕上。在一种情况下,JSON对象太大,并且出现Findered Binder Transaction错误。我的解决方案是获取该JSON对象并将其嵌入到应用程序代码中,这样就无需从服务器获取该JSON对象。你能告诉我我可以做的其他事情吗?还

  • 问题内容: 要使用带有大量数字(100,000+)的Fermat基本性测试时需要的[模幂,它需要进行一些非常大的计算。 当我将两个大数相乘时(例如:62574和62574),PHP似乎将结果强制转换为浮点数。获取该模量的值将返回奇怪的值。 有什么方法可以使PHP正确执行这些计算?另外,还有另一种方法可以找到适用于大量数值的模量值吗? 问题答案: 出于某种原因,PHP中有两个处理任意长度/精度数字的

  • 问题内容: 我有一些Python代码可以执行一个外部应用程序,当该应用程序的输出量很少时,它可以很好地运行,但是在有大量输出时,它会挂起。我的代码如下: 文档中有一些注释似乎表明了潜在的问题。等待中,有: 警告:如果子进程向或管道生成足够的输出,从而阻塞等待OS管道缓冲区接受更多数据的输出,则将死锁。使用避免这种情况。 尽管进行了交流,但我发现: 注意读取的数据缓存在内存中,因此,如果数据大小很大

  • 问题内容: 我正在使用Hadoop示例程序WordCount处理大量的小文件/网页(大约2-3 kB)。由于这与hadoop文件的最佳文件大小相去甚远,因此该程序非常慢。我猜这是因为安置和撕毁工作的成本远远高于工作本身。这样的小文件还会导致文件名的命名空间耗尽。 我读到在这种情况下,我应该使用HDFS存档(HAR),但是我不确定如何修改此程序WordCount以从此存档中读取。程序可以在不进行修改

  • 我使用Oracle数据库和驱动程序,我使用从ResultSet获取Clob,然后在方法中将其转换为String: