Reputation: 1201
I'm using Selenium Grid 2(2.42.2) with webdriver to test our application on firefox 31 in Ubuntu 12.04, and our web app is base on backbase.
when open this app, it will show some items on left panel, right panel is empty. If user double click one item on left panel, then it will load corresponding page on right panel. At the beginning, this page cannot be edited, if user double click on this page, then this page become editable, user can input something on this page.
Now the problem is : I can use double click command to open specific page, but I cannot use double click command to make the page editable. But if I click one time on this page manually when running test, then it can make this page editable.
the following is code :
DesiredCapabilities capability = new DesiredCapabilities();
capability.setBrowserName(browser);
capability.setPlatform(Platform.LINUX);
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
action = new Actions(driver);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://mydomain:8443/test/main.html");
action.doubleClick(driver.findElement(By.xpath("//div[@id='temFolder']")));
action.perform();
action.doubleClick(driver.findElement(By.xpath("//div[@id='TempTO']/div[3]/table/tbody/tr[1]")));
action.perform();
Upvotes: 1
Views: 6918
Reputation: 369
An alternative is to workaround the issue using class JavascriptExecutor Source
simplified to this:
((JavascriptExecutor) driver).executeScript("document.getElementById('map_container').dispatchEvent(new Event('dblclick'));");
Upvotes: 0
Reputation: 1201
Solution is add sendKeys before double click :
driver.findElement(<xpath>).sendKeys("");
action.doubleClick(<element>).perform();
I also tried to add "action.moveToElement(element).click().perform" before double click, but didn't work too. Just "sendKeys" works.
Upvotes: 2
Reputation: 2480
You need to move to that element and then perform double click in it.
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//div[@id='temFolder']"))).doubleClick().build().perform();
action.moveToElement(driver.findElement(By.xpath("//div[@id='TempTO']/div[3]/table/tbody/tr[1]"))).doubleClick().build().perform();
Upvotes: 0