Перейти к содержимому

vadim4ik

Регистрация: 01 окт 2016
Offline Активность: 03 окт 2016 12:44
-----

Мои темы

Reading data from file using @DataProvider

01 октября 2016 - 07:33

Добрый день, уважаемое сообщество.

Обращаюсь к Вам с вопросом, который бывалому автоматизатору может показаться незатейливым, но меня как, начинающего ставит в тупик.

Вообщем обрисую ситуацию.

Есть *.txt файл, в котором хранятся некие ключевые слова с новой строчки, То есть в строке одно слово.

Необходимо в процессе автоматизации считывать построчно слово и через @DataProvider передавать его на выполнение скрипта.

Меня как человека неопытного этот момент ставит в тупик, надеюсь на Вашу поддержку и помощь. 

Вот код:

 

public class Main {

public WebDriver driver;


public static String[] readArray(String file){
int ctr = 0;

try {
Scanner s1 = new Scanner(new File("1.txt"));
while (s1.hasNextLine()){
ctr = ctr +1;
s1.next();
}
String[] words = new String[ctr];

Scanner s2 = new Scanner(new File("1.txt"));
for (int i=0; i < ctr; i = i + 1)
words[i] = s2.next();
return words;

}
catch (FileNotFoundException e) {

}
return null;
}


// В данном месте необходимо передавать слова из файла.

//@DataProvider(name = "keyWords")
//public static Object[][] keyWords(){
//return new Object[][]{
//{"picture"},
// {"google"}};}
//
@BeforeClass
public void seUp(){
driver = new FirefoxDriver();
}

@Test(dataProvider = "keyWords")
public void test(String words){
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.navigate().to("https://www.bing.com/");

WebElement myElement = driver.findElement(By.id("sb_form_q"));
myElement.sendKeys(words);
myElement.submit();

List<WebElement> outComes = driver.findElements(By.xpath("//*[@id='b_results']//div[1]/h2/a"));

// String title = driver.getTitle();
// System.out.println(title);
System.out.println(driver.getTitle());

for(WebElement s:outComes){
System.out.println(s.getText());}

}
@AfterClass
public void quit(){
driver.quit();
}