很抱歉,如果标题不清楚,我很难写一个简短的标题来解释这个,所以这就是我需要的。
我有一个网站,在这个网站上有一个表格,希望用我所拥有的csv的内容填写其字段。
所以我们假设有一个带标题的csv:
id name age
3 john 35
在我的网站上我有一个表格:
person:
id _____
name _____
age _____
所以现在我想自动用selenium填充这个表单并让selenium从csv获取数据....我该怎么做?
答案 0 :(得分:0)
有一个名为sendKeys()的方法,使用该方法填充表单。
例如:
driver.findElement(xpath_for_id).sendKeys("3");
driver.findElement(xpath_for_name).sendKeys("John");
driver.findElement(xpath_for_age).sendKeys("35");
答案 1 :(得分:0)
就我而言,我使用自制函数返回一个对象数组
public static Object[][] getCsvData(String testDataFilePath){
...
}
这将在DataProvider中使用
@DataProvider(name = "dataSet")
public Object[][] provideData() throws IOException {
return getCsvData("testdata/xxx.csv");
}
使用这样来测试多种组合 csv的每一行都是一个集合(id,name,age)
@Test(dataProvider = "dataSet")
public void testForm(String id, String name, String age) {
driver.findElement(By.xpath("yourXpath")).sendKeys(id);
driver.findElement(By.xpath("yourXpath")).sendKeys(name);
driver.findElement(By.xpath("yourXpath")).sendKeys(age);
}
答案 2 :(得分:0)
试试这个:
public class CSVReaderUtil {
public static void main(String[] args) throws FileNotFoundException {
CSVReader csvRead = new CSVReader(new FileReader("F:\\csvfiledata.csv"));
String[] row = null;
try {
while((data = csvRead.readNext()) != null){
driver.findElement(By.id("id")).sendKeys(data[0]);
driver.findElement(By.id("name")).sendKeys(data[1]);
driver.findElement(By.id("age")).sendKeys(data[2]);
}
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
csv file contents:
3,john,35
2,jeb,40