我想知道在数据驱动测试中是否可以将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();
答案 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”。