- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Wed Jun 05, 2013 9:15 pm
Hi
There is an invisible element on my HTML page which becomes visible when a mouse hover is done on the element. What I Have to do is
Here i am able to locate one of the option by using Xpath but unable to do action on it viz. Click, sendkeys(Keys.Enter) etc..
Please help to perform action on that selected items.
Thanks in Advance,
Vidya
There is an invisible element on my HTML page which becomes visible when a mouse hover is done on the element. What I Have to do is
- Hover over the element
- Click on the element (it will display 5 options)
- Click on one of the options
Here i am able to locate one of the option by using Xpath but unable to do action on it viz. Click, sendkeys(Keys.Enter) etc..
Please help to perform action on that selected items.
Thanks in Advance,
Vidya
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Thu Jun 06, 2013 10:12 am
You may have to construct web element object for the elements which appear after hover. Once you get the element you should be able to click on it using WebDriver,
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Thu Jun 06, 2013 1:07 pm
Tarun,
Thanks for ur response.
"You may have to construct web element object for the elements which appear after hover"--->I din get u exactly,But tried something (How i understood) and attached my script for ur reference.
In the below script ,I tried to locate an element "Language",which becomes visible when a mouse hover is done on the element "CB connection".And I have to click on 'Language'.
I have tried in different ways.I cudnt do the action "Click" on that element.But able to locate the element.
URL:http://www.joomlapolis.com/forum/42-usability/61928-mouse-over-on-registration-form-tooltip
Here is my sample script
Please help.
Thanks,
Vidya
Thanks for ur response.
"You may have to construct web element object for the elements which appear after hover"--->I din get u exactly,But tried something (How i understood) and attached my script for ur reference.
In the below script ,I tried to locate an element "Language",which becomes visible when a mouse hover is done on the element "CB connection".And I have to click on 'Language'.
I have tried in different ways.I cudnt do the action "Click" on that element.But able to locate the element.
URL:http://www.joomlapolis.com/forum/42-usability/61928-mouse-over-on-registration-form-tooltip
Here is my sample script
- Code:
import java.util.List;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class TestPrgm {
public static void main(String[] args) throws InterruptedException{
WebDriver driver=new FirefoxDriver();
driver.get("[url=http://www.joomlapolis.com/forum/42-usability/61928-mouse-over-on-registration-form-tooltip]http://www.joomlapolis.com/forum/42-usability/61928-mouse-over-on-registration-form-tooltip[/url]");
Actions builder = new Actions(driver);
Action mouseOverCBconnection = builder
.moveToElement(driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/a/span")))
.build();
mouseOverHome.perform();
Thread.sleep(2000);
WebElement elt=driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]"));
Action mouseOverHome1 = builder
.moveToElement(elt)
.click(elt)
.build();
mouseOverHome1.perform();
/*if("Languages".equals(driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]")).getText())) {
if(elt.isEnabled() && elt.isDisplayed())
elt.sendKeys(Keys.ENTER);
}*/
// I ve tried this too
/*String txt=driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]")).getText();
driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]")).click();
http://driver.findElement(By.className("item156")).click(); ------>Tried to locate the same element by classname
System.out.println(txt);*/
Thread.sleep(2000);
driver.close();
}
}
Please help.
Thanks,
Vidya
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Thu Jun 06, 2013 8:54 pm
Tarun,
FYI.
I came across tis link:
http://selenium-testng.com/webdriver-events/
Please refer this. I tried the methods given here (xcept last one),but still i was unable to do the Action (Click) on the Element.
Thanks,
Vidya
FYI.
I came across tis link:
http://selenium-testng.com/webdriver-events/
Please refer this. I tried the methods given here (xcept last one),but still i was unable to do the Action (Click) on the Element.
Thanks,
Vidya
- mail2prassadAmateur
- Posts : 41
Join date : 2013-06-05
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Thu Jun 06, 2013 9:38 pm
replace your block of code
if("Languages".equals(driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]")).getText())) {
if(elt.isEnabled() && elt.isDisplayed())
elt.sendKeys(Keys.ENTER);
}
with the following block of code and try
WebElement languageElem = driver.findElement(By.xpath("//a[@href='/cb-solutions/languages']"));
if(languageElem.isDisplayed())
languageElem.click();
if("Languages".equals(driver.findElement(By.xpath("//html/body/div/div[3]/div/div/div/ul/li[4]/ul/li[2]")).getText())) {
if(elt.isEnabled() && elt.isDisplayed())
elt.sendKeys(Keys.ENTER);
}
with the following block of code and try
WebElement languageElem = driver.findElement(By.xpath("//a[@href='/cb-solutions/languages']"));
if(languageElem.isDisplayed())
languageElem.click();
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Fri Jun 07, 2013 12:43 pm
Prassad,
Thank u so much. Its working perfectly now.
But still have few doubts…
· “WebElement languageElem = driver.findElement(By.xpath("//a[@href='/cb-solutions/languages']"));
if(languageElem.isDisplayed())
languageElem.click();”
In the above code if I replaced the xpath by “//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]”,which is the absolute xpath for “Language”,I am not able to do the “Click” action.
Why so??.But by using that I am able to locate the “Language”.I checked tat by using following script
“String txt=driver.findElement(By.xpath“//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]”)).getText();
System.out.println(txt);”
Output:
Language
· How to get all the options which all visible when mouse hover is done ??
For example:
In the same Scenario, I want to capture/read all the options under CB connection once mouse hover is done (i.e Languages, Adds on ,Incubator,etc..).
Note: Actually I need to read all the options as how we do for Dropdown box elements.
Please guide me.
Thanks,
Vidya
Thank u so much. Its working perfectly now.
But still have few doubts…
· “WebElement languageElem = driver.findElement(By.xpath("//a[@href='/cb-solutions/languages']"));
if(languageElem.isDisplayed())
languageElem.click();”
In the above code if I replaced the xpath by “//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]”,which is the absolute xpath for “Language”,I am not able to do the “Click” action.
Why so??.But by using that I am able to locate the “Language”.I checked tat by using following script
“String txt=driver.findElement(By.xpath“//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]”)).getText();
System.out.println(txt);”
Output:
Language
· How to get all the options which all visible when mouse hover is done ??
For example:
In the same Scenario, I want to capture/read all the options under CB connection once mouse hover is done (i.e Languages, Adds on ,Incubator,etc..).
Note: Actually I need to read all the options as how we do for Dropdown box elements.
Please guide me.
Thanks,
Vidya
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Fri Jun 07, 2013 1:00 pm
Just now noticed that all my approaches working perfectly now with the replacement of xpath"//a[@href='/cb-solutions/languages']" instead Of “//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]”.
Now my query is Why I am not able to do the action by using Absolute xpath ??
Note: I got that absolute xpath by using FireBug only.
Vidya.
Now my query is Why I am not able to do the action by using Absolute xpath ??
Note: I got that absolute xpath by using FireBug only.
Vidya.
- mail2prassadAmateur
- Posts : 41
Join date : 2013-06-05
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Fri Jun 07, 2013 4:55 pm
If you look at the source, "//html/body/div/div[3]/div/div/div/ul/li[3]/ul/li[2]” is not a clickable element. There is an anchor tag inside this element which is clickable. That is the reason you can't click on the element.
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Fri Jun 07, 2013 5:06 pm
Prassad,
Thanks for ur response.I have another query
How to get all the options which all visible when mouse hover is done ??
For example:
In the same Scenario, I want to capture/read all the options under CB connection once mouse hover is done (i.e Languages, Adds on ,Incubator,etc..).
Note: Actually I need to read all the options as how we do for Dropdown box elements.
Thanks for ur response.I have another query
How to get all the options which all visible when mouse hover is done ??
For example:
In the same Scenario, I want to capture/read all the options under CB connection once mouse hover is done (i.e Languages, Adds on ,Incubator,etc..).
Note: Actually I need to read all the options as how we do for Dropdown box elements.
- mail2prassadAmateur
- Posts : 41
Join date : 2013-06-05
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Fri Jun 07, 2013 9:02 pm
After mouse hover try the following block of code.
- Code:
WebElement CBsolutionsElement = driver.findElement(By.xpath("//a[@href = '/cb-solutions']"));
List<WebElement> dropdownElements = CBsolutionsElement.findElements(By.xpath("//a[contains(@href, '/cb-solutions/')]"));
for(WebElement element : dropdownElements){
System.out.println(element.getText());
}
- vidya shreeRegular Participant
- Posts : 31
Join date : 2013-05-09
Re: Unable to perform Actions on Mouse over Elements in Selenium WebDriver
Mon Jun 10, 2013 1:34 pm
Thank u Prassad.
Its working (though i am getting some extra options), I came to known about the "contains n starts-with" Xpath patterns.
Thanks again,
Vidya
Its working (though i am getting some extra options), I came to known about the "contains n starts-with" Xpath patterns.
Thanks again,
Vidya
- Urgent-Mouse hover functionality using selenium webdriver for drop down list box
- Can we perform drag-and-drop' from local folder to a particular xpath in web page using Selenium Webdriver?
- How to find Fonts of all Web Elements in selenium webdriver
- How to scroll up the invisible webpage to find out the elements using selenium webdriver?
- Drag and drop of html 4 elements not working using selenium webdriver?
Permissions in this forum:
You cannot reply to topics in this forum