我正在使用带有webdriver的Selenium Grid 2(2.42.2)在Ubuntu 12.04中的firefox 31上测试我们的应用程序,而我们的Web应用程序基于后台。
打开此应用时,它会在左侧面板上显示一些项目,右侧面板为空。 如果用户双击左侧面板上的一个项目,则会在右侧面板上加载相应的页面。一开始,此页面无法编辑,如果用户双击此页面,则此页面可编辑,用户可以在此页面上输入内容。
现在问题是:我可以使用双击命令打开特定页面,但我不能使用双击命令使页面可编辑。但是,如果我在运行测试时手动在此页面上单击一次,则可以使此页面可编辑。
以下是代码:
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();
答案 0 :(得分:0)
您需要移动到该元素,然后双击它。
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();
答案 1 :(得分:0)
解决方案是在双击之前添加sendKeys:
driver.findElement(<xpath>).sendKeys("");
action.doubleClick(<element>).perform();
我还尝试添加&#34; action.moveToElement(element).click()。perform&#34;在双击之前,但也没有工作。只是&#34; sendKeys&#34;的工作原理。
答案 2 :(得分:0)
另一种方法是使用类JavascriptExecutor Source
解决问题简化为:
((JavascriptExecutor) driver).executeScript("document.getElementById('map_container').dispatchEvent(new Event('dblclick'));");