2017-07-13 4 views
0

Ich habe eine Situation, in der ich keine solche Element-Ausnahme behandeln muss, unten ist das Szenario.Web-Tabelle Elemente nicht mit Selen-Webdriver?

1.Customer registriert 2.Customer ist nicht registriert 3.Fresh Kunden

Für Register Kunden ich in der Lage bin zu erhalten Kartennummer mit XPath registrieren, aber frisch Kunden gibt es keine solche Kundendaten anzeigen in In diesem Fall funktioniert mein Zustand nicht und zeigt kein solches Element.

Beispiel:

Register Kunden

Mobil Nein, Vorname, Nachname, Karte No etc in Kundendaten Web-Tabellengitter

String card_no=driver.findElement(By.xpath("//td[@aria-describedby='CustomerGrid_cardNo']")).getText(); 
      System.out.println(card_no); 

      if(card_no.length()==0){ 
       System.out.println("Customer is not register and proceeding for registration"); 
       driver.findElement(By.id("cardNo")).sendKeys("39409297"); 
       driver.findElement(By.id("Btn")).click(); 
       Thread.sleep(2500);    

      }else{ 
       System.out.println("Customer Mobile No is already registered -"+card_no); 
      } 

Frische Kunde:

Es gibt keine solchen Details werden in den Web-Tabellenrasterdetails des Kunden angezeigt. Es ist leer und ich muss diesen neuen Kunden registrieren. Bitte geben Sie die Lösung an, wie Sie die Bedingung dafür schreiben können.

, wenn sie leer

<table width="470" cellspacing="0" cellpadding="0" border="0" align="center"> 
<tbody> 
<tr> 
<tr> 
<td> 
<div id="gbox_CustomerGrid" class="ui-jqgrid ui-widget ui-widget-content ui-corner-all" dir="ltr" style="width: 570px;"> 
<div id="lui_CustomerGrid" class="ui-widget-overlay jqgrid-overlay"></div> 
<div id="load_CustomerGrid" class="loading ui-state-default ui-state-active" style="display: none;">Loading...</div> 
<div id="gview_CustomerGrid" class="ui-jqgrid-view" style="width: 570px;"> 
<div class="ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix" style="display: none;"> 
<div class="ui-state-default ui-jqgrid-hdiv" style="width: 570px;"> 
<div class="ui-jqgrid-bdiv" style="height: 300px; width: 570px;"> 
<div style="position:relative;"> 
<div></div> 
<table id="CustomerGrid" class="ui-jqgrid-btable" cellspacing="0" cellpadding="0" border="0" tabindex="1" role="grid" aria-multiselectable="false" aria-labelledby="gbox_CustomerGrid" style="width: 552px;"> 
</div> 
</div> 
</div> 

mit Daten:

<table id="CustomerGrid" class="ui-jqgrid-btable" cellspacing="0" cellpadding="0" border="0" tabindex="1" role="grid" aria-multiselectable="false" aria-labelledby="gbox_CustomerGrid" style="width: 552px;"> 
<tbody> 
<tr class="jqgfirstrow" style="height:auto" role="row"> 
<td aria-describedby="CustomerGrid_cardNo" title="7348054" style="text-align:center;" role="gridcell">7348054</td> 
</tr> 
+0

Teilen 'HTML' für beide Fälle – Andersson

+0

Hallo Andersson, Bitte finden Sie den HTML-Code de in der Frage Details –

Antwort

1

Sie können wie unten versuchen,

int card_no=driver.findElements(By.xpath("//td[@aria-describedby='CustomerGrid_cardNo']")).size(); 
      System.out.println(card_no); 

      if(card_no==0){ 
       System.out.println("Customer is not register and proceeding for registration"); 
       driver.findElement(By.id("cardNo")).sendKeys("39409297"); 
       driver.findElement(By.id("Btn")).click(); 
       Thread.sleep(2500);    

      }else{ 
       System.out.println("Customer Mobile No is already registered -"+card_no); 
      } 
+0

Hallo Murthi, Super es funktioniert wie erwartet, vielen Dank. –