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

Java 如何在xpath中传递两个不同的参数?,java,selenium,Java,Selenium,我们是否可以使用放置在映射文件中的in-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(

我们是否可以使用放置在映射文件中的in-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+"')]");
 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);
//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]
但是,我想从映射文件调用这个xpath,并将行和列值作为参数传递。类似这样的东西,但是可以使用Java吗

string template = //table[@id='TemplateCreator']//td[contains(@id,'Template.<identifier_row>.<identifier_column>')]
driver.findelement(By.Xpath(template+row+column); 
string template=//表[@id='TemplateCreator']//td[包含(@id,'template..')]
findelement(By.Xpath(模板+行+列);
尝试以下操作:

int row = 1;
int column = 2;
driver.findelement(By.Xpath("//table[@id='TemplateCreator']//td[contains(@id,'Template."+row+"."+column+"')]");
 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);
//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]
在映射文件中,按如下方式存储模板:

int row = 1;
int column = 2;
driver.findelement(By.Xpath("//table[@id='TemplateCreator']//td[contains(@id,'Template."+row+"."+column+"')]");
 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);
//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]

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

XPath只是一个字符串……您只需替换其中的任何变量,就像替换任何其他字符串一样。