【问题标题】:How to verify sorting option result contain right results using selenium, java?如何使用 selenium、java 验证排序选项结果是否包含正确的结果?
【发布时间】:2017-10-02 12:47:26
【问题描述】:

在我的应用程序中,我有一个包含表单名称的表格,它有一个排序按钮。我想验证单击该排序按钮后出现的任何结果是否为排序格式(表单名称可以包含字母、数字、空格、-)

我已经编写了从表单名称中获取文本的代码,但正在为如何验证而苦苦挣扎。

 boolean flag = false;
 List<WebElement> list = WebDriverFactory.getWebDriver().findElements(By.xpath(".//*[@id='paymentFormsTable']//tbody//tr"));
 int size = list.size();
 for (int i = 1; i <= size; i++) {
 String a = WebDriverFactory.getWebDriver().findElement(By.xpath(".//*[@id='paymentFormsTable']//tbody//tr[" + i
                                                         + "]//td[starts-with(@id,'payment-forms-form-name')]"))
                                                 .getText();

这是结果,我想验证天气是否已排序

(testing form
us
us test form
token veni form edit
text test form
text test form
testing veni form
testing form
tester form
Test-Partnere197
Test-Partnere193
Test-Partnere181
Test-Partnere180
Test-Partnere167
Test-Partnere164
Test-Partnere159
Test-Partnere156
Test-Partnere134)

【问题讨论】:

  • 当你 Sysout String a 时你看到了什么
  • 测试表我们我们测试表,token veni 表编辑,文本测试表,文本测试表,测试表,测试表,测试表,Test-Partnere197,Test-Partnere193,Test-Partnere181, Test-Partnere180、Test-Partnere167、Test-Partnere164、Test-Partnere159、Test-Partnere156、Test-Partnere134)
  • 那么现在您要对所有这些元素进行排序吗?
  • @Dev 这些都是排序结果,但我想验证排序结果是否正确排序。
  • 通过 Selenium 打印出在 HTML DOM 中找到的元素。现在,如果要对与 Java 相关的元素进行排序,则在打印之前。 Selenium 与列表的排序无关。但是您将再次比较排序列表什么/谁?你的参考点是什么?

标签: java sorting selenium automation


【解决方案1】:

我的第一个元素的索引是 1,所以我稍微改变了之前的答案。 for (int i = 0; i

{
    int j=i+1;
    actual[i]=sorted[i] = driver.findElement(By.xpath('//*[@id="view-clients-list-page--clients--table"]/div[1]/table/tbody/tr[' + j+ ']/td[1]')).getText();
     println(actual[i])
}

【讨论】:

  • Arrays.sort(sorted, Collections.reverseOrder());
【解决方案2】:

我们需要一个参考排序字符串,以便与字符串的实际顺序进行比较。我们可以创建一个单独的数组并保持这个数组排序。稍后我们需要以相同的顺序从每个数组中取出每个字符串并相互比较。

如果所有字符串都通过数组匹配,则按元素在网页中显示的顺序进行排序。

 boolean flag = false;
 List<WebElement> list = WebDriverFactory.getWebDriver().findElements(By.xpath(".//*[@id='paymentFormsTable']//tbody//tr"));
 int size = list.size();
 String[] actual = new String[size]; 
 String[] sorted = new String[size];

 for (int i = 0; i < size; i++) 
 {
    actual[i]=sorted[i] = WebDriverFactory.getWebDriver().findElement(By.xpath(".//[@id='paymentFormsTabl']//tbody//tr[" + i+ "]//td[starts-with(@id,'payment-forms-form-name')]")).getText();
 }

 //Sorting the array
 Arrays.sort(sorted);

 //Validating the existing with sorted array. shows no message if both are same
 for(int i = 0;i<size;i++)
 {
     if(!actual[i].equals(sorted[i]))
     {
         System.out.println("The elements the webpage are not sorted");
         System.out.println("expected "+sorted[i]+" but actual "+actual[i]+" at row "+i);
         flag = true;
     }
 }

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2018-09-28
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多