2014-02-14 57 views
0

所以我是新來硒(真新)以及新的Java和要登錄到一個頁面,然後導航到另一個地方硒使問題NoSuchFrameException

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()理解的概念

UPDATE:

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 
{ 
} 
} 

} 

回答

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

我敢肯定你不能在類級別使用throws關鍵字。

這也表明你在測試類中沒有任何方法。

你的代碼應該看起來像這樣:

public class FireEyeAlert { 

    public void myTestMethod() throws IOException { 

     ... 
    } 

} 

只是出於好奇,你有什麼用編譯你的源代碼的工具?

+0

哦,是的,我也試過,然後editted像我上面那樣..使用eclipse林,生病修復我的代碼,感謝 – ToxicGlow

+0

可能也想用@Test註釋該方法 – unigeek

+0

我會檢查,我不知道如何使用@test的東西呢......也在C++中,我通常有一個主要的,如果我創建任何類是獨立的主,爲什麼INSIDE是主要的類? – ToxicGlow