2016-08-04 3 views
1

Я хочу нажать кнопку поиска, чтобы получить список адресов для этого, я использовал className, чтобы найти элемент, но он не работает.Невозможно нажать на кнопку и выбрать элемент из раскрывающегося списка с помощью selenium webdriver

Код, который я написал.

driver.findElement(By.className("secondary right postfix findaddress")).click(); 

Я также пробовал использовать нижеприведенный код, но он не работает. Я получаю Таймаут после 20 секунд ожидания на наличие элемента, расположенного на: By.className: вторичное право постфикса findaddress

WebDriverWait wait4 = new WebDriverWait(driver,20); 
WebElement radio4 = wait4.until(ExpectedConditions.presenceOfElementLocated(By.className("secondary right postfix findaddress"))); 
((JavascriptExecutor)driver).executeScript("arguments[0].click()", radio4); 

HTML код

<div class="small-3 columns"> 

<button class="secondary right postfix findaddress" style="border-left-color: currentColor !important; border-left-width: medium !important; border-left-style: none !important;" onclick="cmss.addressLookup.search($(this).closest('div.addressSearch'))" type="button">Find</button> 

</div> 

После поиска кнопка нажата выберите адрес из выпадающего списка.

<select class="AddressList" id="CurrentCriteria__addressLst"> 
<option>- Select -</option><option id="0" name="0"> I can't see my address </option> 
<option id="1" name="1"> 2 Abbot Gardens Essex IG5 7BB</option> 
<option id="2" name="2"> 3 Abbot Gardens Essex IG5 7BB </option> 

Может ли кто-нибудь мне помочь?

ответ

1

На самом деле By.className не поддерживает класс соединений, попробуйте использовать By.cssSelector, как показано ниже: -

driver.findElement(By.cssSelector("button.secondary.right.postfix.findaddress")).click(); 
+0

Код для нажатия кнопки работает нормально. Можете ли вы дать мне решение о том, как выбрать элемент из раскрывающегося списка. Я обновил вопрос. –

+0

@PrashantBellale [Посмотрите на это] (http://stackoverflow.com/questions/20138761/how-to-select-a-dropdown-value-in-selenium-webdriver-using-java), чтобы выбрать значение из раскрывающегося списка –

+0

@SubhashGaur Это то, что я написал 'Select currentaddresslist = new Select (driver.findElement (By.id (" CurrentCriteria__addressLst "))); \t \t currentaddresslist.selectByVisibleText ("2 Abbot Gardens Essex IG5 7BB"); ', но адрес не выбирается. –

0

Вы использовали локатор By.className("secondary right postfix findaddress"), className локатор может использоваться только тогда, когда есть только 1 класс.

Здесь в вашем случае есть 4 разных классов, поэтому локатор, который вы использовали, не будет работать.

Вы можете идти вперед с любым из ниже локатора: -

driver.findElement(By.cssSelector("button.secondary.right.postfix.findaddress")).click(); 

ИЛИ

driver.findElement(By.xpath("//button[@class='secondary right postfix findaddress']")).click(); 

ИЛИ

driver.findElement(By.xpath("//div/button")).click(); 
0

Попробуйте это ..

driver.findElement(By.xpath("//button[@type = 'button' and contains(@class,'secondary right postfix findaddress') and contains(text(), 'Find')]")) 
Смежные вопросы