2013-06-11 1 views
0

Пожалуйста, помогите мне выбрать случайное имя страны из выпадающего списка страны при каждом запуске скрипта.Как выбрать значение в случайном порядке с помощью xml в веб-драйвере selenium с Java

Я хочу попробовать использовать xml.

XPATH из выпадающего списка является .//*[@id='intselect ']

HTML code: 
<select id="intselect" name="intselect" onchange="setCurrency(this);"> 
<option value="US">UNITED STATES</option> 
<option value="AG">ANTIGUA AND BARBUDA</option> 
<option value="AR">ARGENTINA</option> 
<option value="AW">ARUBA</option> 
<option value="AU">AUSTRALIA</option> 
<option value="AT">AUSTRIA</option> 
<option value="BH">BAHRAIN</option> 
<option value="BD">BANGLADESH</option> 
</select> 

countryname.xml

<?xml version="1.0" encoding="UTF-8"?> 

<array name="testArray"> 

<country> 
<countryname>UNITED STATES</countryname> 
</country> 
<country> 
<countryname>ANTIGUA AND BARBUDA</countryname> 
</country> 
<country> 
<countryname>ARGENTINA</countryname> 
</country> 
<country> 
<countryname>ARUBA</countryname> 
</country> 
<country> 
<countryname>AUSTRALIA</countryname> 
</country> 
</array> 

// Метод выборки случайного значения из XML

public void Fetch_XML() 
     { 

      SAXBuilder builder = new SAXBuilder(); 
      File xmlFile = new File("C:\\Documents and Settings\\vlakshm\\MyTNG\\list\\countrynames.xml"); 
      Element node = null; 
      try { 

       //Element result=null; 
      Document document = (Document) builder.build(xmlFile); 
      Element rootNode = document.getRootElement(); 
      List list = rootNode.getChildren("country"); 

      Random random = new Random(); 
      int newcountryname= random.nextInt(list.size()); 

      node = (Element) list.get(newcountryname); 

      }//End of Try loop 
      catch (IOException io) { 
      System.out.println(io.getMessage()); 
      } catch (JDOMException jdomex) { 
      System.out.println(jdomex.getMessage()); 
      } 
      node.getChildText("countryname"); 
      //element_array = driver.findElement(By.xpath("//select[@id='intselect']/option")); 
     }//End of randomPartnum method 

// Я звоню, чтобы этот метод был выбран в раскрывающемся списке

public void Choser() { 
     Fetch_XML(); 
     driver.findElement(By.id("intselect")).click();  
     System.out.println("---------------------------------------"); 
     System.out.println("Country choser layer test case-Success"); 
     System.out.println("---------------------------------------"); 

    } 

но получаю пустой указатель exception.Can кто-нибудь помочь мне разобраться с проблемой в коде

ответ

0

В вашем Java/селеном тестовый скрипт

  1. Получить длина массива данных тест
  2. Разработай случайное число в диапазоне 0-LengthOfArray-1 (Generate Random Number in a given Range)
  3. Используйте вышеуказанный номер, чтобы выбрать страну из массива данных испытаний
+0

Я попытался с помощью следующих code.But его не выбора значения. – user2353517

+0

Я отредактировал вопрос с кодом, который я пробовал ... – user2353517

+0

Не знаю, понимаю ли я вашу логику. Можете ли вы посмотреть здесь (http://stackoverflow.com/questions/6430462/how-to-select-get-drop-down-option-in-selenium-2). Попробуйте выбрать один вариант страны по метке без использования ваших тестовых данных xml - select.selectByVisibleText («ARGENTINA») ;. – behold

0

Это работает для меня:

private void randomSelect(String id) { 
    WebElement webElement = driver.findElement(By.id(id)); 

    Select select = new Select(webElement); 

    List<WebElement> selections = select.getOptions(); 

    int index = (int)(Math.random() * selections.size()); 

    select.selectByIndex(index); 
} 
Смежные вопросы