Добрый день, уважаемое сообщество.
Обращаюсь к Вам с вопросом, который бывалому автоматизатору может показаться незатейливым, но меня как, начинающего ставит в тупик.
Вообщем обрисую ситуацию.
Есть *.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();
}