使用 selenium java 进行表排序数据验证

Posted

技术标签:

【中文标题】使用 selenium java 进行表排序数据验证【英文标题】:Table sort data validation using selenium java 【发布时间】:2022-01-04 17:35:43 【问题描述】:

问题陈述 - 有一个具有排序功能的表格,我想实现

    排序前获取数据 点击排序 排序后获取数据

比较阶段前后的数据

创建函数

Public List getDateHelper()
List<WebElement> data= new ArrayList()<>;
for(iterator logic)
data.add(driver.findelement(By.xpath("/div/div["+i+"]")))

return data;

这被称为


public void dataValidation()
List<WebElement> temp1 = new ArrayList()<>;
List<WebElement> temp2 = new ArrayList()<>;
temp1=helper.getDateHelper();
ClickOnSortBtn();//logic to click using selenium
temp2=helper.getDateHelper();
Assert.assertFalse(temp1.equals(temp2))

期望 temp1 和 temp2 不应该相等,但我看到 temp1 的值也在 ClickOnSortBtn() 上得到更新

我发现这与 ref 有关,但不知道如何解决

【问题讨论】:

ClickOnSortBtn() 之后用这个temp1=helper.getDateHelper(); 覆盖之前取行的值,这样它就没有意义了。可能你的意思是temp2=helper.getDateHelper(); 作为用户,我在 temp 1 中获得数据的引用,并使用 UI 点击排序,现在想要比较前后的数据。我想了解如何实现这一目标 因为我在函数中使用 new 为 List 赋值,但我不确定, 我什至尝试分配/克隆/复制到新列表 @AlexeyR.thanks 指出错误。感谢您对提高问题质量的帮助 【参考方案1】:

请比较前 2 个元素和后 2 个元素的文本不相等。

喜欢

            // before clicking sort
 String firstElementTextBefore = driver.findElement(tmpBy).getText();
 String secondElementTextBefore = driver.findElement(tmpBy).getText();
 String lastBeforeElementTextBefore = driver.findElement(tmpBy).getText();
 String lastElementTextBefore = driver.findElement(tmpBy).getText();
            
            
            // after clicking sort
 String firstElementTextAfter = driver.findElement(tmpBy).getText();
 String secondElementTextAfter = driver.findElement(tmpBy).getText();
 String lastBeforeElementTextAfter = driver.findElement(tmpBy).getText();
 String lastElementTextAfter = driver.findElement(tmpBy).getText();
            
            // assertions
     Assert.assertNotEquals(firstElementTextBefore, firstElementTextAfter);
     Assert.assertNotEquals(secondElementTextBefore, secondElementTextAfter);
     Assert.assertNotEquals(lastBeforeElementTextBefore, lastBeforeElementTextAfter);
     Assert.assertNotEquals(lastElementTextBefore, lastElementTextAfter);

【讨论】:

以上是关于使用 selenium java 进行表排序数据验证的主要内容,如果未能解决你的问题,请参考以下文章

selenium处理极验滑动验证码

如何在java中对不同的数据类型进行排序并将它们打印在一个表中? (使用方法重载)

冒泡排序与选择排序(经典版)----java基础总结

在java中使用单链表和冒泡排序进行编码

在java中如何给数据进行大小排序

Python之极验滑动验证码的识别(教程+案例)