Selenium给NoSuchFrameException带来问题

时间:2014-02-14 17:21:06

标签: java selenium

所以我是Selenium的新手(非常新),也是Java的新手,想要登录页面然后导航到另一个地方

import java.sql.Driver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.internal.seleniumemulation.Close;

public class FireEyeAlert throws IOException {

      WebDriver driver = new HtmlUnitDriver();

        driver.get("nnnnnn");
        driver.findElement(By.name("utf8")).clear();
        System.out.println("Element found");
        driver.findElement(By.name("utf8")).sendKeys("nnnnnnn");
        driver.findElement(By.name("authenticity_token")).clear();
        driver.findElement(By.name("authenticity_token")).sendKeys("1nnnnnnnn");
        System.out.println("Element found");

}

我似乎无法理解为什么它无法编译!它是一个简单的代码,字面上是从网上复制的。

哦,这是我想访问的网站的源文件代码部分。

<input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="sfWWnPWaNhd1qnOh4tIT8KMs4+VNSv7+aF3VTn+BpxA=" />

另外,我正在使用http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.html#switchTo()来理解这个概念

更新:

import org.openqa.selenium.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;


public class FireEyeAlert  {

    public static void main(String args[]) throws NoSuchFrameException
    {

try{
      WebDriver driver = new HtmlUnitDriver();

        driver.get("https://nnnnnn");
        driver.findElement(By.name("utf8")).clear();
        System.out.println("Element found");
        driver.findElement(By.name("utf8")).sendKeys("Jnnnnnn");
        driver.findElement(By.name("authenticity_token")).clear();
        driver.findElement(By.name("authenticity_token")).sendKeys("14nnnnnn!");
        System.out.println("Element found");
}


catch(NoSuchFrameException e)
{
System.out.println(" h");   
}
finally
{
}
}

}

2 个答案:

答案 0 :(得分:1)

我很确定您无法在班级使用throws关键字。

这也表明您的测试类中没有任何方法。

您的代码应如下所示:

public class FireEyeAlert {

   public void myTestMethod() throws IOException {

      ...
   }

}

只是出于好奇,您使用什么工具来编译资源?

答案 1 :(得分:1)

我会简化它并编写如下代码:

import org.openqa.selenium.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class FireEyeAlert  
{
    public static void main( String args[] ) 
    {
        WebDriver driver = new HtmlUnitDriver();
        driver.get("http://nnnnnn");
        // driver.switchTo().frame( driver.findElement(By.id("frameId")));
        driver.findElement(By.name("utf8")).clear();
        System.out.println("Element found");
        driver.findElement(By.name("utf8")).sendKeys("Jnnnnnn");
        driver.findElement(By.name("authenticity_token")).clear();
        driver.findElement(By.name("authenticity_token")).sendKeys("14nnnnnn!");
        // driver.switchTo().defaultContent();
        System.out.println("Element found");
    }
}