【问题标题】:How to store List of Elements which are present in multiple Page?如何存储多个页面中存在的元素列表?在硒 java
【发布时间】:2021-06-08 14:54:44
【问题描述】:

有一个名为“Responses”的按钮,按钮总数为 100 个,分别存储在 2 个不同的网页中,从第一页到第二页导航按钮称为“下一步”

我需要将所有按钮存储在一个列表中,并验证所有 100 个文本是否与存在的“响应”按钮相同。但我不知道如何继续循环浏览下一页并存储总共 100 个按钮。需要帮助!!

By nextBtn = By.xpath("//input[@type='submit' and @value='Next']");

List<WebElement> allresponses= diver.findElements(By.xpath("//input[@type='button' and @value='Responses']"));
List<String> responseText = new ArrayList<>();
for(int i=0; i<allresponses.size(); i++){
responseText.add(allresponses).getText();}

我试图将 2 页中的所有 100 个按钮存储到 1 个列表中,并验证是否有 100btns。 1page 50btn 和 clickn next 后的两个页面将是另一个 50btn。需要帮助,因为我卡在中间。谢谢。

【问题讨论】:

    标签: java selenium automation automated-tests qa


    【解决方案1】:

    您希望循环遍历所有响应并添加每个元素的文本,而不是元素本身:

    By nextBtn = By.xpath("//input[@type='submit' and @value='Next']");
    
    List<WebElement> allresponses= diver.findElements(By.xpath("//input[@type='button' and @value='Responses']"));
    List<String> responseText = new ArrayList<>();
    for(int i=0; i<allresponses.size(); i++){
        responseText.add(allresponses[i].getText());
    }
    

    【讨论】:

    • 我需要在 1 个列表中存储 2 页中的总共 100 个元素,我需要单击 nextBtn 进入下一页,每页包含 50 个 btn,我可以在列表中存储 50 个元素,但是想要将 100 个元素加在一起,在这种情况下,我需要点击 nextBtn 进入下一页,然后总共 100 个元素
    【解决方案2】:

    这可能会有所帮助

    By nextBtn = By.xpath("//input[@type='submit' and @value='Next']");
    List < WebElement > allresponses = new List < WebElement > ();
    while (diver.findElements(By.xpath("//input[@type='button' and @value='Responses']")).isEnabled()) {
    
        allresponses.addAll(diver.findElements(By.xpath("//input[@type='button' and @value='Responses']")));
    
    }
    

    【讨论】:

      【解决方案3】:

      在这里,您可以将第一页的元素存储在一个列表中。以及第二个列表中其他页面的元素。之后,您可以添加这些列表的元素。
      请检查以下代码:

      By nextBtn = By.xpath("//input[@type='submit' and @value='Next']");
      List<WebElement> allresponses= driver.findElements(By.xpath("//input[@type='button' and @value='Responses']"));
      List<String> responseText = new ArrayList<>();
          for(int i=0; i<allresponses.size(); i++)
          { 
          responseText.add(allresponses[i].getText());
          }
          driver.findElement(nextBtn).click();
      List<WebElement> allresponses1= driver.findElements(By.xpath("//input[@type='button' and @value='Responses']"));
      List<String> responseText1 = new ArrayList<>();
          for(int i=0; i<allresponses1.size(); i++)
          { 
          responseText1.add(allresponses1[i].getText());
          }
      responseText.addAll(responseText1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        • 2019-01-01
        • 1970-01-01
        相关资源
        最近更新 更多