将特定数据从webelement(表)存储到JAVA列表中

时间:2013-11-08 16:03:05

标签: java user-interface selenium ui-automation

我正在测试一个Web应用程序,我输入一个关键字,然后以HTML表的形式获得结果 我想从这个表中提取一些文本并将其存储到一个列表中,以便稍后与另一个列表进行比较:

以下是我启动搜索的代码,我将表存储在列表中:

@Parameters({"keyword" , })
@Test
private void srch(String keyword ) throws JsonParseException, JsonMappingException,      MalformedURLException, IOException  {

    driver.get(TestURL);
      WebElement input1 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[1]"));
      input1.sendKeys("guest");
      WebElement input2 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[2]"));
      input2.sendKeys("guest");
      WebElement btn = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/button"));
      btn.click();
      WebElement w1 = driver.findElement(By.xpath("html/body/header/nav/div[1]/form/div/input"));
      w1.sendKeys(keyword);
      WebElement w2 = driver.findElement(By.xpath("(//button[@type='button'])[2]"));
      w2.click();
      List<WebElement> resultsDiv = driver.findElements(By.xpath("html/body/div[1]/div[2]/div/div/div[1]/table"));
          System.out.println(resultsDiv.size());
        for (int i=0; i<resultsDiv.size(); i++) {
            System.out.println(i+1 + ". " + resultsDiv.get(i).getText());




      }


}

我正在添加system.out.println以查看我从表中获得的内容。

这是我的表结构:

HTML code:

 <table class="table table-striped table-hover table-condensed table-bordered">
 <tbody>
 <!-- ngRepeat: object in objects -->
<tr class="ng-scope" ng-repeat="object in objects">  
<td>
<a target="_blank" href="#/en/object/TASK|TSK(IAM720JUA5)(000)|BIST_CE891">
<b class="ng-binding">TSK(IAM720JUA5)(000)</b>
</a>
<p style="font-size:11px;">

</td>
</tr>

实际网络显示

TSK(IAM720JUA5)(000)

JOB IAM720JUA5 | 000Chargement des OR CE891 PSIEP23P Flux 5 地点:BIST_CE891 名称:TSK

我想得的只是TSK(IAM720JUA5)(000)部分。

但是我当前的代码显示:

1 1。 1 1。 1 1。 1 1。 1 1。 1 1. TSK(ARS090J)(000)(ARS090JN30)(000)

WORKFLOW ARS090J | 000 Arret et redemarrage des services WEB /

位置:RARS_APP02 名称:TSK 1 1。 1 1。 1 1。 1 1. TSK(Z63700J)(000)(Z63700JU10)(000)

工作流程Z63700J | 000 Lancement rebonds CFT Z63

地点:RZ63_ECH01 名称:TSK 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1.

我知道我必须更改循环内的代码,但不知道如何继续。

由于

1 个答案:

答案 0 :(得分:0)

我终于明白了:

@Test
private void srch() throws MalformedURLException, IOException  {


         driver.get(TestURL);
         WebElement input1 = driver.findElement(By.id("login_form_user_input"));
         input1.sendKeys("guest");
         WebElement input2 = driver.findElement(By.id("login_form_password_input"));
         input2.sendKeys("guest");
         WebElement btn = driver.findElement(By.id("login_form_signin_button"));
         btn.click();
         WebElement w1 = driver.findElement(By.id("header_search_text_field"));
         w1.sendKeys("tsk");
         WebElement srch = driver.findElement(By.id("header_search_button"));
         srch.click();
         WebDriverWait wait= new WebDriverWait(driver,20 );
         wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("td")));
         WebElement table = driver.findElement(By.id("search_results_table"));
         List <WebElement> rst = table.findElements(By.tagName("b"));
         for (int i=0 ; i< rst.size(); i++)
         {
             System.out.println(rst.get(i).getText());
         }







      }