2017-02-14 2 views
1
Driver.findElement(By.xpath("//*[@id='client']")).sendKeys("Ho"); 
Driver.manage().timeouts().implicitlyWait(1,TimeUnit.MINUTES); 

WebElement dropdown = (new WebDriverWait(Driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='client']"))); 

Driver.findElement(By.xpath("//*[@id='collapseClientInfo']/div/form/div[3]/div[2]/ul/li[1]/a")).sendKeys(Keys.ENTER); 

Не могли бы вы помочь мне выбрать значение автоматического заселить из выпадающего списка:Выбор параметров из текстовых полей с помощью Selenium заполняются автоматически WebDriver

  1. У нас клиент textbox который коробку автоматического заполнения.
  2. Когда я вводил текст «ho» в поле клиента, он показывает мне раскрывающийся список, который имеет значения, связанные с моим введенным текстом, то есть ho, после чего я должен выбрать те значения, которые доступны в списке.
  3. В приведенном выше коде я попытался нажать Enter, но не смог выбрать значение.

Не могли бы вы проверить приведенный выше код и помочь мне в этом же?

+0

Не могли бы вы поделиться URL сайта или соответствующий HTML ?? .... –

+0

пакет ChromeBrowser; государственной статической силы основных (String [] арг) { \t \t \t \t Driver.findElement (By.xpath ("// * [@ ид = 'клиент']")). SendKeys ("Хо") ; Driver.manage(). Timeouts(). ImplicitlyWait (1, TimeUnit.MINUTES); WebElement dropdown = (новый WebDriverWait (драйвер, 10)) до (ExpectedConditions.presenceOfElementLocated (By.xpath ("// * [@ id = 'client']"))); Driver.findElement (By.xpath ("// * [@ id = 'collapseClientInfo']/div/form/div [3]/div [2]/ul/li [1]/a")) sendKeys (Keys.ENTER); \t}} Пожалуйста, проверьте код выше. –

+0

Но где мы можем проверить ваш код. ?? –

ответ

1

Вы должны попробовать, как показано ниже: -

WebDriverWait wait = new WebDriverWait(Driver, 60); 

//wait until loader invisible 
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("loaderDiv"))); 

//this sleep is required because after invisibility of loader focus goes to first input which is Requisition Number 
//If you are filling form from first input no need to for this sleep 
//if you want to input directly to client field need to sleep to avoid focus first 
Thread.sleep(3000); 

//Now find the client input and set value 
WebElement client = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("client"))); 
client.sendKeys("Ho"); 

//Now find all the showing option 
List<WebElement> dropdownOptions = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("ul.dropdown-menu a"))); 

//Now select the first option 
dropdownOptions.get(0).click(); 
+1

Благодарим за код. Он отлично работает, но теперь я пробовал одно и то же в следующем поле и не смог найти элемент. В приведенном выше коде вы выбрали «CSS Selector», который вы выбрали из кода, не так ли? –

+0

@ajaykumar Да, может быть, будет работать какой-то другой селектор, попробуйте определить локатор .. :) –

+0

Я пробовал с ID и CSS-дорогой, но не работал. –

1

Ниже подход может оказаться полезным:

// Enter text in auto complete text box 
driver.findElement(By.xpath("//*[@id='client']")).sendKeys("Ho"); 

// Wait for options to display 
Thread.sleep(5000); 

// Option to select 
String optionToSelect = "Honda"; 

Boolean isOptionSelected = Boolean.FALSE; 

// Get the options displayed 
List<WebElement> options = driver.findElements(By 
     .cssSelector("ul.dropdown-menu a")); 

// Select option 
for (WebElement webElement : options) { 
    if (webElement.getText().equalsIgnoreCase(optionToSelect)) { 
     webElement.click(); 
     isOptionSelected = Boolean.TRUE; 
    } 
} 

if (isOptionSelected) { 
    // Option is selected 
} else { 
    // Expected option is not displayed. Fail the script 
} 
+0

Я думаю, это хороший вариант, если я хочу выбрать какое-либо конкретное значение –

Смежные вопросы