Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Java的Selenium Webdriver中,如何通过标题名而不是索引/键引用Excel列?_Java_Excel_Selenium Webdriver_Data Driven Tests_Telerik Test Studio - Fatal编程技术网

在使用Java的Selenium Webdriver中,如何通过标题名而不是索引/键引用Excel列?

在使用Java的Selenium Webdriver中,如何通过标题名而不是索引/键引用Excel列?,java,excel,selenium-webdriver,data-driven-tests,telerik-test-studio,Java,Excel,Selenium Webdriver,Data Driven Tests,Telerik Test Studio,我最近刚开始使用Selenium WebDriver和Java编写自动化测试,但我以前的经验是使用Telerik Test Studio和C。在大多数情况下,过渡都进行得很顺利,但我正试图找到一种在SeleniumWebDriver中设置数据驱动测试的方法,很明显,这种方法与使用TestStudio的本地数据选项卡(不含内置UI)设置数据驱动测试的方法类似 我已经用ApachePOI设置了我的框架,这样我就可以使用Excel文件来处理我的数据,每一行表示一个由列表示的不同变量组成的场景。问题在于

我最近刚开始使用Selenium WebDriver和Java编写自动化测试,但我以前的经验是使用Telerik Test Studio和C。在大多数情况下,过渡都进行得很顺利,但我正试图找到一种在SeleniumWebDriver中设置数据驱动测试的方法,很明显,这种方法与使用TestStudio的本地数据选项卡(不含内置UI)设置数据驱动测试的方法类似

我已经用ApachePOI设置了我的框架,这样我就可以使用Excel文件来处理我的数据,每一行表示一个由列表示的不同变量组成的场景。问题在于,由于列往往会随着时间的推移而被添加或重新排序,因此我需要一种方法,通过其顶行标题中的名称字符串而不是通过其键或索引来引用任何列

Test Studio使这变得非常容易,因为一旦您将电子表格复制到本地数据选项卡,您就可以通过标题名称轻松地引用列,其中包含以下内容

if (...LocalData.PaymentMethod = "CreditCard")...
…其中PaymentMethod是列的名称,CreditCard是该列单元格中的潜在值


有人知道在SeleniumWebDriver中使用Java通过标题名字符串引用列的方法吗?任何帮助都将不胜感激。谢谢

我认为您正在将Selenium与从excel表读取的数据弄乱。Selenium不能做到这一点——Apache POI做到了。因此,我将回答有关POI使用的问题

您可以使用CellReference实用程序类和列索引检索列标题:

String columnName = CellReference.convertNumToColString(columnIdex);
找到必要的列后,可以读取其单元格:

for(Row r : sheet) {
   Cell c = r.getCell(columnIdex);
   // do what you need

}

谢谢,但正如我注意到的,我已经在使用ApachePOI了。您的建议使用了列的索引,这是我特意避免使用的,因为随着列的添加或重新排序,索引会发生变化,需要手动更新其他许多列的索引。我有很多专栏。我还应该注意到,我不需要像TestStudio提供的那样干净地引用专栏。虽然这很好,但我无法通过标题字符串内容引用列,这是我问题的症结所在。