how to write xpath for parameterised variable
up vote
-1
down vote
favorite
I have to write an xpath for the below xml snippet:
<div class="flex-item flex-container-horizontal flex-align-center sf-element sf-element-page-tab sfpc-even" title="S1M0D barchart" tabindex="1">
<span class="sf-element sf-element-text-box sfpc-first sfpc-last sfpc-odd">S1M0D barchart</span>
</div>
In the xpath, I have to add a variable tabName which shall replace the title in the xpath:
tabName = S1M0D barchart
//span[contains(text(),"tabName"]
which is nothing but //span[contains(text(),"S1M0D barchart")]
I am not sure how to write the xpath since the double quotes (") is treating the variable tabName as a string and is not getting replaced during execution.
selenium selenium-webdriver xpath xpath-2.0 domxpath
add a comment |
up vote
-1
down vote
favorite
I have to write an xpath for the below xml snippet:
<div class="flex-item flex-container-horizontal flex-align-center sf-element sf-element-page-tab sfpc-even" title="S1M0D barchart" tabindex="1">
<span class="sf-element sf-element-text-box sfpc-first sfpc-last sfpc-odd">S1M0D barchart</span>
</div>
In the xpath, I have to add a variable tabName which shall replace the title in the xpath:
tabName = S1M0D barchart
//span[contains(text(),"tabName"]
which is nothing but //span[contains(text(),"S1M0D barchart")]
I am not sure how to write the xpath since the double quotes (") is treating the variable tabName as a string and is not getting replaced during execution.
selenium selenium-webdriver xpath xpath-2.0 domxpath
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I have to write an xpath for the below xml snippet:
<div class="flex-item flex-container-horizontal flex-align-center sf-element sf-element-page-tab sfpc-even" title="S1M0D barchart" tabindex="1">
<span class="sf-element sf-element-text-box sfpc-first sfpc-last sfpc-odd">S1M0D barchart</span>
</div>
In the xpath, I have to add a variable tabName which shall replace the title in the xpath:
tabName = S1M0D barchart
//span[contains(text(),"tabName"]
which is nothing but //span[contains(text(),"S1M0D barchart")]
I am not sure how to write the xpath since the double quotes (") is treating the variable tabName as a string and is not getting replaced during execution.
selenium selenium-webdriver xpath xpath-2.0 domxpath
I have to write an xpath for the below xml snippet:
<div class="flex-item flex-container-horizontal flex-align-center sf-element sf-element-page-tab sfpc-even" title="S1M0D barchart" tabindex="1">
<span class="sf-element sf-element-text-box sfpc-first sfpc-last sfpc-odd">S1M0D barchart</span>
</div>
In the xpath, I have to add a variable tabName which shall replace the title in the xpath:
tabName = S1M0D barchart
//span[contains(text(),"tabName"]
which is nothing but //span[contains(text(),"S1M0D barchart")]
I am not sure how to write the xpath since the double quotes (") is treating the variable tabName as a string and is not getting replaced during execution.
selenium selenium-webdriver xpath xpath-2.0 domxpath
selenium selenium-webdriver xpath xpath-2.0 domxpath
asked Nov 22 at 8:32
Abhishek Pandey
41
41
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48
add a comment |
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
You can use String.format
, you need to wrap the variable in single quotes
String tabName = "S1M0D barchart";
String.format("//span[contains(text(),'%s')]", tabName);
add a comment |
up vote
0
down vote
Thanks Everyone for your time. I figured out the answer to this post.
We can write the xpath like "//span[contains(text(),"" + tabName + "")]"
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You can use String.format
, you need to wrap the variable in single quotes
String tabName = "S1M0D barchart";
String.format("//span[contains(text(),'%s')]", tabName);
add a comment |
up vote
0
down vote
You can use String.format
, you need to wrap the variable in single quotes
String tabName = "S1M0D barchart";
String.format("//span[contains(text(),'%s')]", tabName);
add a comment |
up vote
0
down vote
up vote
0
down vote
You can use String.format
, you need to wrap the variable in single quotes
String tabName = "S1M0D barchart";
String.format("//span[contains(text(),'%s')]", tabName);
You can use String.format
, you need to wrap the variable in single quotes
String tabName = "S1M0D barchart";
String.format("//span[contains(text(),'%s')]", tabName);
edited Nov 22 at 8:40
answered Nov 22 at 8:38
Guy
18.2k62149
18.2k62149
add a comment |
add a comment |
up vote
0
down vote
Thanks Everyone for your time. I figured out the answer to this post.
We can write the xpath like "//span[contains(text(),"" + tabName + "")]"
add a comment |
up vote
0
down vote
Thanks Everyone for your time. I figured out the answer to this post.
We can write the xpath like "//span[contains(text(),"" + tabName + "")]"
add a comment |
up vote
0
down vote
up vote
0
down vote
Thanks Everyone for your time. I figured out the answer to this post.
We can write the xpath like "//span[contains(text(),"" + tabName + "")]"
Thanks Everyone for your time. I figured out the answer to this post.
We can write the xpath like "//span[contains(text(),"" + tabName + "")]"
answered Nov 22 at 8:55
Abhishek Pandey
41
41
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53426736%2fhow-to-write-xpath-for-parameterised-variable%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Selenium doesn't support XPath 2.0. You should use programming language features to pass your variable value to XPath expression
– Andersson
Nov 22 at 8:36
String xpath = "//span[contains(text(),""+tabName+""]" & then use this xpath wherever you want to use . (for-ex driver.findElement(By.xpath(xpath));)
– sjethvani
Nov 22 at 8:48