2011-10-07 60 views
2

我正在嘗試使用用戶名「username」和密碼「password」登錄到我們的生產站點,例如「http://site.com」。當我執行測試時,它會到達站點打開的階段,但它不會輸入用戶名和密碼。代碼如下:用Selenium登錄問題

<form name="login" method="post" action="j_security_check"> 
             <table> 
              <tbody> 
               <tr> 
                <td> 
                 <label style="color: gray; left: 0px; top: 48px;"> 
                  Username: 
                 </label> 
                </td> 
                <td> 
                 <input type="text" mandatory="true" value="" name="j_username" tabindex="1"> 
                </td> 
               </tr> 
               <tr> 
                <td> 
                 <label style="color: gray; left: 0px; top: 96px;"> 
                  Password: 
                 </label> 
                </td> 
                <td> 
                 <input type="password" mandatory="true" name="j_password" value="" tabindex="2"> 
                </td> 
               </tr> 
               <tr> 
                <td colspan="2"> 
                 <input type="submit" value="Login" name="login" tabindex="3" style="width: 87px;height:30px"> 
                </td> 
               </tr> 
               <tr> 

系統的詳細資料:頁面

package com.beginning; 

import java.util.List; 
import java.util.NoSuchElementException; 
import java.util.concurrent.TimeUnit; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.junit.internal.runners.statements.Fail; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.junit.Assert.*; 
public class testcase { 

    private WebDriver driver; 
    private String baseUrl=""; 
    private StringBuffer verificationerrors=new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
     driver=new FirefoxDriver(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    } 

    @Test 
    public void testJUnit0() throws Exception { 
     driver.get("site.com"); 
     driver.findElement(By.name("j_username")).clear(); 
     //System.out.println("Element found"); 
     driver.findElement(By.name("j_username")).sendKeys("username"); 
     driver.findElement(By.name("j_password")).clear(); 
     driver.findElement(By.name("j_password")).sendKeys("password"); 
     driver.findElement(By.cssSelector("input[type=\"submit\"]")).click(); 

    } 

    @After 
    public void tearDown() throws Exception { 
     driver.quit(); 
     String verificationerrorString=verificationerrors.toString(); 

     } 
    private boolean isElementPresent(By by) 
    { 
     try { 
      driver.findElement(by); 
      return true; 
     } 
     catch(NoSuchElementException e) 
     { 
      return false; 
     } 
    } 
} 

相關HTML部分

了OpenSuse 11.4,硒2.8.0,火狐7

異常升高是:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:96) 
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:149) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:72) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:128) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:79) 
    at com.beginning.jw.setUp(jw.java:26) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
+0

瀏覽器顯示什麼?您是否嘗試過使用Eclipse調試測試? – artbristol

+0

瀏覽器無法啓動。它卡在這一行:driver = new FirefoxDriver()。我做了一個netstat | grep 7055,但是,這並沒有顯示任何正在監聽端口7055的進程。所以,我想知道它爲什麼會這樣做:( – crazyaboutliv

+0

當測試失敗時,你會得到什麼異常? –

回答

1

我認爲你應該使用網站的完整名稱:

對於前:

「http://www.site.com」

使用它作爲您的網址。

+0

這只是一個例子,我實際上使用了確切的鏈接,謝謝 – crazyaboutliv

0

在提到的問題中,它打開網站,未能登錄,並且在您提到的評論中,'瀏覽器無法啓動'。我有點困惑:) 如果我假設瀏覽器沒有啓動,那麼聽起來您需要更改OpenSuse機器上的IPv6設置。以下是常見問題的鏈接。

http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_WebDriver_fails_to_start_Firefox_on_Linux_due_to_java.net

+0

我發佈查詢時的問題是事實上,不是日誌記錄,當時有人發表了評論,它不是開放的,根本原因是我以root身份運行整個事件作爲臨時解決安裝問題的臨時解決方法,現在很好,我重新安裝了eclipse和其他東西。 – crazyaboutliv

0

檢查mozilla與硒版本的兼容性。