2012-09-25 1 views
2

J'essaie de sélectionner une option dans un contrôle Telerik RadComboBox Asp.Net en utilisant Selenium WebDriver et je ne peux pas le faire fonctionner de manière cohérente. Je suis en utilisant le code suivantComment sélectionner une option du Telerik RadComboBox en utilisant Selenium WebDriver et C#?

var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30)); 
    wait.Until(ExpectedConditions.ElementIsVisible(RadComboBoxArrowBy)); 

RadComboBoxArrow.Click(); 
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30)); 
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[contains(@id, 'rcbRadComboBox_Input')]"))); 
RadComboBox.SendKeys(division); 
RadComboBox.SendKeys(Keys.Tab); 

où RadComboBoxArrow est la flèche à droite de l'élément d'entrée dans la Telerik RadComboBox.

J'utilise ce code dans plusieurs endroits et dans un seul il échoue de temps en temps avec

System.TimeoutException: Timed out after 30 seconds ---> 
OpenQA.Selenium.NoSuchElementException: Unable to locate element: 
{"method":"xpath","selector":"//input[contains(@id, 'rcbRadComboBox_Input')]"} 

Avant de proposer l'utilisation de SelectElement s'il vous plaît tenir compte du fait que Telerik RadComboBox ne rend pas une balise select .

Répondre

0

J'utilise driver.Click()

D'abord, je clique sur le combo pour l'amener à ouvrir:

driver.Click(By.Id("ctl00_WCEContentPlaceHolder_RadToolbar_ReportsMenu_rttb1_ctl00_rcb_Reports"); 

Ensuite, je clique sur l'élément par ID. Celui-ci arrive à être le premier dans la liste.

driver.Click(By.Id("ctl00_WCEContentPlaceHolder_RadToolbar_ReportsMenu_rttb1_ctl00_rcb_Reports_c1"); 
Questions connexes