Xpath for href element - selenium

I need to click on the below href element,which is present among similar href elements.
<a id="oldcontent" href="listDetails.do?camp=1865"><u>Re-Call</u></a>
Can anyone provide me xpath to click the above href link?

Try below locator.
selenium.click("css=a[href*='listDetails.do'][id='oldcontent']");
or
selenium.click("xpath=//a[contains(#href,'listDetails.do') and #id='oldcontent']");

This works properly try this code-
selenium.click("xpath=//a[contains(#href,'listDetails.do') and #id='oldcontent']");

This will get you the generic link:
selenium.FindElement(By.XPath("xpath=//a[contains(#href,'listDetails.do')")).Click();
If you want to have it specify a parameter then you will have to test for each one:
...
int i = 1;
selenium.FindElement(By.XPath("xpath=//a[contains(#href,'listDetails.do?camp=" + i.ToString() + "')")).Click();
...
The above could utilize a for loop which navigates to and from each camp numbers' page, which could verify a static list of camps.
Please excuse if the code is not perfect, I have not tested myself.

have you tried:
//a[#id='oldcontent']/u[text()='Re-Call']

for me worked //a[text()='Re-Call']

what worked for me:
//a[contains(#href,'logout')]

Below works fine.
//a[#id='oldcontent']
If you've tried certain ones and they haven't worked, then let us know, otherwise something simple like this should work.

Best way to locate anchor elements is to use link=Re-Call:
selenium.click("link=Re-Call");
It will work..

Related

xpath=(//a[contains(text(),'-PPxo-P24-FA')])[2] fails to select

This is what I have
1000000 Venelin-PPxo-P24-FAID-EUR
want to write an XPath for the a based on its contained text. I tried the below but it does not work
xpath=(//a[contains(text(),'-PPxo-P24-FA')])[2]
However, if I try with the below, it works
xpath=(//a[contains(text(),'-PPxo-P24-FAI')])[2]
I am using Selenium IDE 2.9.1 if that makes any contribution to my question.
Hi it seems your Xpath is incorrect
can you try following:
xpath = ("//a[contains(text(),'-PPxo-P24-FA')][2]")
Thank you for all of the answers, guys!
However, I found the solution. It looks like the website contains the text some more times than I need it to. The working code is:
xpath=(//a[contains(text(),'-P24-')])[6]

unable to find the element in my application using selenium webdriver

HTML code for element is:
<select id="pt1:reg2:1:soc1::content" class="x2h" title="" theme="dark" name="pt1:reg2:1:soc1">
Every time the xpath is getting changed but i am unable to find element.
WebElement w1 = driver.findElement(By.xpath(".//select[starts-with(#id, 'pt1') AND contains(#id, ':soc1::content')]"));
Select s = new Select(w1);
s.selectByVisibleText("Commercial");
I tested the xpath with a online tool like: http://www.xpathtester.com/xpath
This query worked just fine, i changed the and to lowercase.
.//select[starts-with(#id, 'pt1') and contains(#id, ':soc1::content')]
Write Xpath in Double quotes "xpath here" and
Don't take first full stop '.' from xpath,its of no use.
It start with //
Good luck
".//select[starts-with(#id, 'pt1') AND contains(#id, ':soc1::content')]"
Here full stop(.) before // need to be removed in Xpath.
Below one is without "AND" which is also working fine.
//select[starts-with(#id, 'pt1')][contains(#id,':soc1::content')]

How to write xpath for the on/off button present in a table for which class is compound class

This element can be turned off or on. As the class is compound class, not sure how to write the xpath. So wrote like this
//tr[1]/td[4]/div[1]/div/div/div[#css='div.ios-switch.on']
Screen shots are attached here
Can you help me in writing the xpath for this element
Use this instead - //tr[1]/td[4]/div[1]/div/div/div[#class='ios-switch on']
"#checkbox1011 [class^='ios-switch']"
or
"#checkbox1011 .ios-switch.on,.ios-switch.off"
Try using these CSS selectors.
//div[#id='checkbox1011']//td[#class='ios-switch-on']
Try:
//tr[1]/td[4]/div[1]/div/div/div[#css='.ios-switch.on' or '.ios-switch.off']
Hopefully this should work.
For the above screenshot, let me assume the username as sabrina galloway.
The toggle switch should present in the same row of username column.
You can use xpath like,
.//tr[./descendant::td[contains(.,'sabrina galloy')]/descendant::*[contains(#class,'ios-switch')]/div[#class='handle']
Use //div[starts-with(#class,'ios-switch')]

Selenium cannot find the element under iframe

I'm trying to find the element under a iframe, and I've switch to the frame, but I still can not find the element
enter image description here
my HTML is in the link: http://pastebin.com/AShYrdxQ
Hi first of all i found only one iframe on the page with id = msgframe and also please note that as per your source code that i frame is commented so not playing any role hence please do not use switch to driver simply use
List<WebElement> commonElements = driver.findElements(By.className("Apps_Title"));
for(int i =0;i<commonElements.size();i++){
System.out.println(commonElements.get(i).getText());
}
and it will work thanks hope this will help you.
Try:
driver.switchTo().frame("needle-frame-id-or-name");
sometimes it's help me too:
driver.switchTo().defaultContent();
driver.switchTo().frame("needle-frame-id-or-name");

Not able to identify a lenghty linktext in selenium webdriver

I want to identify an element by linktext, I am facing strange issue
If the linktext value is short i.e addFirst, addLast will be able to locate the element by using
driver.findelement(By.linktext("addLast, addFirst")).click
IF the linktext is addmanualreferraltocheckthelenghtF, addmanualreferraltocheckthelenghtF lengthy as above not able to identify the element
Please help me to find the solution
Why don't you try partial link text.
driver.findelement(By.partialLinkText("addLast, addFirst")).click
try out contains method. use the XPATH value and in XPATH use contains for link text.
EG:
.//*[contains(#Linktext, "addmanualreferraltocheckthelenghtF")]
driver.findelement(By.xpath("//*[contains(#Linktext, "addmanualreferraltocheckthelenghtF")]").click
Alternatively you can also use starts with XPATH value.
.//*[starts-with(#linktext,'addmanual')]
driver.findelement(By.xpath("
//*[starts-with(#linktext,'addmanual')]").click
Hope it helps you.