2016-07-26 14 views
2

Ich finde Schwierigkeiten, wenn Sie versuchen, Combo-Box mit Selen eingeben. Eigentlich die Combo-Box mit Javascript und Ajax, um die Daten zu laden. Wenn der Benutzer auf die Schaltfläche dropdown klickt, lädt das Kombinationsfeld die Daten. eigentlich finde ich Schwierigkeiten, da ich die Funktion selectByValue() oder selectByVisibleText() nicht verwenden kann. Hier ist der Code:Wie in Combobox mit Selen eingeben

<table id="isc_U5" class="OBFormFieldSelectControl" cellspacing="0" cellpadding="0" style="cursor:default;WIDTH:307px;" $9a="$9f" $89="isc_OBFKComboItem_8" role="presentation"> 
<tbody> 
<tr> 
<td style="white-space:nowrap;"> 
<input id="isc_U3" class="OBFormFieldSelectInputRequired" type="TEXT" tabindex="4078" style="WIDTH:281px;HEIGHT:17px;-moz-user-focus:normal;" autocomplete="OFF" onselect="isc_OBFKComboItem_8.$1162()" oninput="isc_OBFKComboItem_8._handleInput()" spellcheck="true" $9a="$9b" $89="isc_OBFKComboItem_8" handlenativeevents="false" name="transactionDocument"/> 
</td> 
<td id="isc_U7" class="OBFormFieldSelectPickerIcon" style="font-size:21px;"> 
</tr> 
</tbody> 
</table> 
+0

wo ist dein Code? –

Antwort

0

Versuchen Sie den folgenden Code. Ich habe JAVA

  1. Verwendung gewöhnlicher Tastaturbefehle verwendet:

    driver.findElement(By.cssSelector("input.OBFormFieldSelectInputRequired").sendKeys("Beginning letters of the word you want"); 
    
  2. Verwendung findElements:

    List<WebElement> elements = driver.findElements(By.cssSelector("list items cssSelector")); 
         for (WebElement element : elements) { 
          if (element.getText().equalsIgnoreCase("Enter the text you want")) { 
           element.click(); 
           break; 
          } 
         } 
    
  3. oder verwenden Java Robot:

    List<WebElement> elements = driver.findElements(By.cssSelector("list items cssSelector")); 
    Robot bot = new Robot(); 
    bot.setAutoDelay(1); 
    
    for (WebElement element : elements) { 
         bot.keyPress(KeyEvent.VK_DOWN); 
         bot.keyRelease(KeyEvent.VK_DOWN); 
         if (element.getText().equalsIgnoreCase("Enter the text you want")) { 
          bot.keyPress(KeyEvent.VK_ENTER); 
          bot.keyRelease(KeyEvent.VK_ENTER); 
          break; 
         } 
    } 
    
+0

Ich benutze bereits Option Nummer eins und zwei, aber es funktioniert nicht. vielleicht ist Option Nummer 3 die beste Antwort. Ich werde versuchen, es zu benutzen danke @selva – Hendrione

0

Bitte versuchen Sie es unter C# -Code.

IWebElement comboBoxElement = driver.FindElement(By.Id("OBFormFieldSelectInputRequired")); 

Option1 Directly die ComboBox Werte durch Verwendung von Tastaturbefehle senden, da er nur ein Eingangselement ist.

comboBoxElement.SendKeys("ComboBox value to select"); 

Option2 Typ Firts Zeichen des Wertes Sie suchen wählen

comboBoxElement.SendKeys("TE"); 

Diese Anwendung lassen wird die UL und LI-Tags mit li Werte beginnend mit TE angezeigt werden .. Suchen Sie nun nach dem UL-Element und finden Sie dessen untergeordnete LI-Elemente. Iteriere durch jedes LI-Element und führe .click durch, wenn der gewünschte Wert während der Iteration gefunden wird.

+0

Ich benutze bereits sendKeys Funktion, aber es funktioniert nicht. Ich benutzte Java-Code vielleicht, um es in C# zu ändern, es wird eine Menge Mühe brauchen – Hendrione