在Selenium Webdriver中使用Actions类

时间:2015-09-02 09:34:20

标签: selenium selenium-webdriver selenium-ide

我正在进行硒学习,当我在文本中探索处理Windows和框架主题时,我发现了这段代码。是否有必要实例化Actions类以及如果我们永远不会在代码中使用它,我们为什么需要这样做呢?

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");
   }

}

3 个答案:

答案 0 :(得分:1)

不,这不是实例化Actions class的必要步骤,除非确实需要它。对于您的代码,根本不需要它。如果您对该部分进行评论,您的代码仍然有效 通常,动作类可以用来模拟一些用户手势,例如:拖放,点击和按住等,按照正常标准,实现起来有点棘手。

答案 1 :(得分:1)

不,如果不需要,我们不需要Action。切换到框架或警报是不同的,使用Action是不同的概念。

您可以使用Action类的不同功能

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

并且对于开关仅用于将webdriver的控制从一个页面转移到另一个页面或从一个帧转移到另一个页面

答案 2 :(得分:0)

不,没有必要使用Action类将控件传递给窗口。对于Frames,我们只是将控件传递给另一个帧。所以使用了SwitchTo。 动作类通常用于鼠标悬停操作,拖放,点击和保持等。 如果您想了解更多关于动作类的信息,请查看链接, Actions class