Выбор нескольких элементов с помощью WebDriver

Добрый день коллеги!

Есть небольшой тест.  Суть его заключается в том, что он выделяет (должен выделять) несколько элементов из таблицы, после чего становится доступна кнопка <    driver.findElement(By.xpath("//td[text()='Chart Selected Metrics']")).click();> , делает скриншот и сохраняет.

 

 

        @Test
        public void EapArgusThreadsBusy() throws IOException, InterruptedException {
            Actions action =  new Actions(driver);
            driver.findElement(By.xpath("//td[text()= 'jboss12.нагрузка и время отклика']")).click();
            TimeUnit.SECONDS.sleep(2);
            driver.findElement(By.xpath("//a[@id='EAPjboss12:2099argus']")).click();
            driver.findElement(By.xpath("//td[@class='tabTitle' and text()='Monitoring']")).click();
            TimeUnit.SECONDS.sleep(2);
            WebElement element1 = driver.findElement(By.xpath("//div[text()='Active Thread Count']"));
            WebElement element2 = driver.findElement(By.xpath("//div[text()='ArgusThreadsBusy']"));
            WebElement element3 = driver.findElement(By.xpath("//div[text()='JVM Free Memory']"));
            action.keyDown(Keys.CONTROL).click(element1).click(element2).click(element3);
            Action act = action.build();
            act.perform();
            driver.findElement(By.xpath("//td[text()='Chart Selected Metrics']")).click();
 
           /* File scrnst = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(scrnst, new File("d://1//rhq//Ресурсы JBoss//EAP Argus Threads Busy.png"));
*/
 
 
    }
 
 
 
Но проблема теста в том, что он не работает. Визуально при выполнении теста видно, что выделяются все элементы element1...element3 но выделяются они без нажатия control, и соответственно кнопка (которая сравнивает эти метрики не рабоатет).
Что я делаю не так?

Напоминаю о себе

если для каждого нажатия необходимо держать ctrl

попробуйте вот такой вот код

action.click(Keys.CONTROL+element1).click(Keys.CONTROL+element2).click(Keys.CONTROL+element3);

видим, слышим, только вот активным людей не так уж много

Известный баг селениума. Видел пост еще 2012 года, до сих пор не пофиксили. Можете попробовать Robot класс, некоторым помог. Тут еще постили патч, но он написан на сях.

Да, и в perform метод уже вшит вызов build. По крайней мере в последней версии либы.

Вот такая ошибка при использовании action.click(Keys.CONTROL+element1).click(Keys.CONTROL+element2).click(Keys.CONTROL+element3);

Operator '+' cannot be applied to 'org.openqa.selenium.Keys', 'org.openqa.selenium.WebElement

Robot спасет МИР получилось 

 

     Robot rob = new Robot();
            rob.keyPress(17);
            driver.findElement(By.xpath("//div[text()='Active Thread Count']")).click();
            driver.findElement(By.xpath("//div[text()='ArgusThreadsBusy']")).click();
            driver.findElement(By.xpath("//td[text()='Chart Selected Metrics']")).click();
            rob.keyRelease(17);
Вот так вот ctrl нажал и выдлелил что надо. Спасибо

Для людей которые столкнуться с такой проблеммой 

Вот тут можно посмотереть Int keyCode клавиши  CONTROL ну и др.   http://delphi-box.ru/view_post.php?id=16

да код не верный, надо было сначала попробовать перед тем, как вам дать его

сорри :)

Робот не спасет, когда начнете запускать тесты удаленно.