无法使用java

时间:2017-05-13 05:26:59

标签: java selenium

根据要求,

需要使用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

3 个答案:

答案 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");
    }
}

如果元素是一个表,你有很多行和列,你需要从每个单元格中获取数据! 首先,您需要获取您正在阅读的文件!

//我很抱歉,如果我错了 //如果我错了,请纠正我,我是编码的初学者!