WebDriver - 如何在数据驱动测试中将对象定位器作为参数传递?

时间:2014-11-14 23:40:05

标签: java selenium webdriver data-driven

我想知道在数据驱动测试中是否可以将locator作为参数传递?例如:

    //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 个答案:

答案 0 :(得分:0)

实现此目的的众多方法之一是使用相同的方法查找元素并从excel文件中读取定位器。

 WebElement radiobElm = driver.findElement(By.xpath("Your xpath string from exel"));

当然,您必须完成所有其他工作才能从Excel中读取正确的单元格。

答案 1 :(得分:0)

是的,你可以。您只需从excel获取数据(例如,使用jexcelapi的getContents()方法)。然后,您可以在它们到来时相应地操纵它们。

1 - 如果是 xpath ,请使用:

WebElement radiobElm = driver.findElement(By.xpath("Cell contents containing xpath of the webelement"));
radioElm.click();

2 - 如果是 ID ,请使用:

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,partialLinkText和tagName”