根据要求,
需要使用selenium从Excel工作表填充动态Web表。
网络表是动态的。对于Excel工作表中的每一行,必须在Web表中添加一个新行
网络元素的ID如下所示:asr_100_ct100_ikview_ct155_view
下一个元素我好像是
asr_100_ct100_ikview_ct156_view
所以,我在这里完成了像
这样的字符串连接Int j=155;
Driver.find element (by.id("asr_100_ct100_ikview_ct" +j+ "_view";
J++.
上面的代码是for循环。
对于Excel工作表中的每一行,必须找到新的webelement并发送数据。
错误:无法找到带有Id的元素 == asr_100_ct100_ikview_ct155_view
答案 0 :(得分:1)
当我用字符串结束整数时,以下代码对我有用。
public class Demo {
public static void main(String[] args) {
int i = 100;
String s = "Hello, I am";
for(i=100;i<105;i++){
System.out.println(s+ i +"Test");
}
}
}
答案 1 :(得分:1)
将xpath用于find元素。
<html>
<body>
<form>
<input type="text" name="email" placeholder="email" size="40"><br><br>
<input type="password" name="password" placeholder="password" size="40"><br><br>
<input hidden name="_token" value="{{csrf_token}}">
<input type="submit" value="send">
</form>
</body>
</html>
答案 2 :(得分:0)
尝试xpath而不是id!
WebDriver driver= new ChromeDriver();
driver.findElement(By.xpath("\\*[starts-with(@id,'asr_100')]
FileInputStream fis= new FileInputStream("path");
XSSFWorkbook b= new XSSFWorkbook(fis); //make sure that it is .xlsx file
XSSFSheet sheet= b.getSheet("sheet name");
WebElement elem= driver.findElement(By.id("id of the whole table"));
List<WebElement> list= elem.findElements(By.xpath(//*[starts-with(@id,'tr id'));
int rows= sheet.getLastRowNum();
for(int i=0; i<rows;i++) {
Row row= sheet.getRow(i);
for(int j=0;j<row.getLastCellNum();j++) {
for(WebElement e: list)
List<WebElement> tr= e.findElements(By.xpath(//*[starts-
with(@id,'td id'))
for(WebElement d: tr)
d.sendKeys("data");
}
}
如果元素是一个表,你有很多行和列,你需要从每个单元格中获取数据! 首先,您需要获取您正在阅读的文件!
//我很抱歉,如果我错了 //如果我错了,请纠正我,我是编码的初学者!