2015-09-02 6 views
1

Я проходил обучение по селену, и когда я изучал Обработка темы Windows и фреймов в тексте, я нашел этот код. Нужно ли создавать экземпляр класса Actions и почему мы должны это делать, если мы никогда не будем использовать его в коде?Использование класса Actions в Selenium Webdriver

public class SwitchBetweenFrames { 

    public static void main(String... args) { 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("file://C:/Frames.html"); 

     Actions action = new Actions(driver); 

     driver.switchTo().frame(0); 
     WebElement txt = driver.findElement(By.name("1")); 
     txt.sendKeys("I'm Frame One"); 

     driver.switchTo().defaultContent(); 

     driver.switchTo().frame(1); 
     txt = driver.findElement(By.name("2")); 
     txt.sendKeys("I'm Frame Two"); 
    } 

} 
+1

Не нужно использовать класс действия, вы можете непосредственно определить кадр, его идентификатор/имя и переключить его на нужный кадр вы хотите. –

ответ

1

Нет, нам не нужно действие, если оно не требуется. Переключение на фрейм или оповещение различно, и использование Action - это другое понятие.

Вы можете использовать различные функции класса действий

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/interactions/Actions.html 

И коммутаторе используется только перекладывать контроль WebDriver с одной страницы на другую или одного кадра к другому

1

Нет, это не является необходимым шагом для создания экземпляра Actions class, если нет актуальной необходимости этого. Для вашего кода это совсем не нужно. Ваш код будет работать, если вы прокомментируете этот раздел.
Обычно Действия класса могут использоваться для эмуляции некоторых жестов пользователя, таких как: перетаскивание, щелчок и удержание и т. Д., Что по обычным стандартам довольно сложно реализовать.

+0

Ya, точно @Subh, я прочитал о классе Actions и Action Interface в том же формате pdf, но неожиданно я увидел этот код для обработки нескольких кадров в классе, я думаю, это либо ошибка печати в книге, либо она есть там для какой-то другой цели .. Спасибо за ответ .. – vinay

+1

Если это весь код, то это как раз случай традиционной глупой ошибки печати, как вы сказали. :) Потому что, создавая экземпляр класса Actions, не используя его ни для чего, просто спрашивает о ненужном доступе к памяти, не так ли? :) – Subh

0

Нет, не нужно к пользовательскому классу Action для передачи управления в окно. Для Frames мы просто передаем элемент управления другому кадру. Так используется SwitchTo. Классы действий обычно используются для действий наведения мыши, перетаскивания, щелчка и удержания и т. Д. Если вы хотите узнать больше о классе действий, проверьте ссылки, Actions class