我们如何在xpath中传递两个不同的参数?

时间:2016-12-28 18:27:36

标签: java selenium

我们可以解析放在map文件中的xpath中的两个不同的参数,并在函数中调用它来使用java来识别元素吗?

的xpath:

//table[@id='TemplateCreator']//td[contains(@id,'Template.1.2')]

在上面的xpath 1.2中是row.column值。因此,当我继续时,我想将行和列作为参数传递。我在我的代码中使用硬编码的xpath,如下所示:

int row = 1;
int column = 2;
driver.findelement(By.Xpath("//table[@id='TemplateCreator']//td[contains(@id,'Template."+row+"."+column+"')]");

但是,我想从Map文件中调用这个xpath并传递row&列值作为参数。这样的东西,但可以使用Java吗?

string template = //table[@id='TemplateCreator']//td[contains(@id,'Template.<identifier_row>.<identifier_column>')]
driver.findelement(By.Xpath(template+row+column); 

1 个答案:

答案 0 :(得分:0)

尝试如下:

 String template = "//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]"; //read template from Map file
    int row=1;
    int column=1;
    String after = String.format(template, row, column);
    System.out.println("after replacing: " + after);

在Map文件中,按如下方式存储模板:

//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]

所以,稍后您可以使用String.format格式化字符串。