WebDriver - как передать локатор объекта в качестве параметра в тесте, управляемом данными?
Мне интересно, возможно ли передать локатор в качестве параметра в тесте, управляемом данными? Например:
//this is non-parameterized object RADIO_BUTTON locator
WebElement radiobElm = driver.findElement(RADIO_BUTTON);
radiobElm.click();
vs.
//I'd like to pass locator "RADIO_BUTTON" as string (strRadioButton) from Excel sheet, so for each test iteration my script will click on different radio-buttons. Is it possible?
WebElement radiobElm = driver.findElement(strRadioButton);
radioElm.click();
2 ответа
Решение
Один из многих способов сделать это - использовать один и тот же метод для поиска элементов и чтения локатора из файла Excel.
WebElement radiobElm = driver.findElement(By.xpath("Your xpath string from exel"));
Конечно, вы должны сделать все остальные работы, чтобы прочитать правильную ячейку из Excel.
Да, ты можешь. Вам просто нужно получить данные из Excel (например, с помощью метода getContents() jexcelapi). Затем вы можете манипулировать ими соответственно по мере их поступления.
1- Если это xpath, используйте это:
WebElement radiobElm = driver.findElement(By.xpath("Cell contents containing xpath of the webelement"));
radioElm.click();
2- Если это идентификатор, используйте это:
WebElement radiobElm = driver.findElement(By.id("Cell contents containing id of the webelement"));
radioElm.click();
3- Если это cssSelector, используйте это:
WebElement radiobElm = driver.findElement(By.cssSelector("Cell contents containing cssSelector of the webelement"));
radioElm.click();
Аналогичная вещь, также может быть применена для "className, name, linkText, partalLinkText и tagName".