2014-12-08 4 views
0

Ниже приведен мой сценарий и html. Я не могу щелкнуть по выпадающему меню, а затем выбрать «двенадцать» из списка. Я пробовал с xpath, имя, но ничего не работает. Любая помощь приветствуется. Благодаря!Как нажимать на элемент в div, диапазон

мой сценарий:

WebElement temp = driver.finaElement(By.cssSelector("#s2id_campaignStatus > a.select2-choice > span")); 
temp.click(); 

HTML:

<table> 
    <tbody> 
     <tr> 
      <td> 
       <div> 
        <div class="select2-container select2-container-active" id="s2id_campaignStatus"> 
         <a href="javascript:void(0)" onclick="return false;" class="select2-choice" tabindex="-1">             
         <span>twelve</span> 
          <abbr class="select2-search-choice-close" style="display:none;"></abbr> 
          <div> 
           <b></b></div> 
           </a><input class="select2-focusser select2-offscreen" type="text"></div> 
           <select name="campaignStatus" id="campaignStatus" class="select2-offscreen" tabindex="-1"> 


           <option value="W" selected="selected">ABC</option> 

              <option value="L">one</option> 
              <option value="P">two</option> 
              <option value="O">three</option> 
              <option value="C">four</option> 
              <option value="R">five</option> 
              <option value="J">six</option> 
              <option value="X">seven</option> 
              <option value="S">eight</option> 
              <option value="A">nine</option> 
              <option value="D">ten</option> 
              <option value="T">twelve</option> 
           </select> 
          </div> 
         </td> 
        </tr> 
        <tr> 
         <td style="padding-left:12px;"> 
          <a href="#" onclick="showTemplate()"> 
           What is a Template? 
          </a> 
         </td> 
        </tr> 
       </tbody></table> 

мой тестовый код @Saifur:

new Select(driver.findElement(By.id("campaignStatus"))).selectByValue("T"); 

     By elementId = By.id("campaignStatus"); 
     WebDriverWait wait = new WebDriverWait(driver, 8); 
     wait.until(ExpectedConditions.presenceOfElementLocated(elementId)); 
     new Select(driver.findElement(elementId)).selectByValue("T"); 
+0

Пожалуйста, убедитесь, что вы добавляете связанные теги и исключения – Saifur

ответ

0
new Select(driver.findElement(By.id("campaignStatus"))).selectByVisibleText("twelve"); 

У вас также есть несколько вариантов с использованием Select класса. См this

new Select(driver.findElement(By.id("campaignStatus"))).selectByValue("T"); 

EDIT добавить ожидание для элемента, чтобы быть готовым состоянием

By elementId = By.id("campaignStatus"); 
WebDriverWait wait = new WebDriverWait(driver, timeoutInSeconds); 
wait.until(ExpectedConditions.presenceOfElementLocated(elementId); 
new Select(driver.findElement(elementId)).selectByValue("T"); 
+2

Является ли элемент видимым? – Saifur

+0

Нет, не видно – familyGuy

+2

Элемент 'select' не отображается сам? Если это так, вы должны сделать это видимым для некоторых других действий. Если это видно, но есть проблема с элементом ожидания, используйте отредактированный код – Saifur

0

Пожалуйста, попробуйте следующий код, он должен работать для вас

Я дал Ручное ожидание в 2 секунды до и после выбора «двенадцать» из раскрывающегося списка.

Явного ждать времени 8 секунд ждать до выбора элемента получает Click-состояния.

WebDriverWait wait = new WebDriverWait(driver, 8); 
WebElement Manages = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//select[@id='campaignStatus']"))); 
Select dropDownelement = new Select(Manages); 
Thread.sleep(2000); 
dropDownelement.selectByVisibleText("twelve"); 
Thread.sleep(2000); 
+0

Я получаю эту ошибку: org.openqa.selenium.TimeoutException: после 8 секунд ожидания кликабельности элемента: By.xpath: // select [@ id = 'campaignStatus'] @Rupesh Shinde – familyGuy

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