2016-12-28 3 views
1

マップファイルに配置されたxpathで2つの異なるパラメータを解析し、関数を呼び出すことで、javaを使用して要素を識別できますか?xpath内で2つの異なるパラメータをどのように渡すのですか?

のXPath:上記のXPath 1.2で

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

はrow.column値です。だから私は進むと、私はパラメータとして行と列の両方を渡したいと思います。私は、マップファイルからこのXPathを呼び出し、パラメータとして行&列の値を渡したい、

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

をしかし、私は次のように私のコードにハードコードされたXPathを使用しています。このような何かが、Javaを使用して可能ですか?

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

XPathは単なる文字列です...他の文字列と同じように、その中のどの変数で置き換えてもかまいません。 – JeffC

答えて

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); 

、店舗のテンプレートを次のように

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

はそう、後であなたは、文字列をフォーマットするString.formatを使用することができます。

関連する問題