2017-02-23 200 views
0

我試圖用Vaadin TestBench設置我的第一個非常簡單的UX測試。爲避免下載驅動程序和設置System.properties或PATH值的麻煩,我還使用了​​庫。TestBench無法打開瀏覽器

爲了使它有點棘手,我們的登錄頁面是一個JSP,我們需要在能夠測試Vaadin應用程序之前打開並進行身份驗證。

下面是簡單的測試,我一直在努力:

public class LoginIT extends TestBenchTestCase { 

private static final String URL="http://localhost:8080/"; 

@Before 
public void setup() throws Exception { 
    ChromeDriverManager.getInstance().setup(); 
    setDriver(new ChromeDriver()); 
} 

@After 
public void tearDown() throws Exception { 
    if (getDriver() != null) { 
     getDriver().quit(); 
    } 
} 

@Test 
public void testLogin_success() { 
    getDriver().get(URL); 
    Assert.equals(URL, getDriver().getCurrentUrl()); 
    WebElement usernameField = driver.findElement(By.name("username")); 
} 
} 

上面的簡單測試將通過對CURRENTURL斷言。但是,它未能找到元素。 enter image description here

我想我在這裏有兩個問題。

  1. 瀏覽器不打開/導航到URL。如果Chrome已經打開,則Chrome在運行測試時不會打開新標籤頁。另外,如果我允許它啓動瀏覽器,它不會打開一個頁面(在Mac OSX上),所以我從不可以直觀地確認它導航到URL。

我試過用Firefox,它顯然有很多Selenium和PhantomJS的問題,它有最新的二進制文件中缺少.lib文件的問題。使用WebDriverManager,我降級到PhantomJS 2.0,但超時等待http://localhost:29436/status

  • 如果它「成功」導航至的URL,如鉻說這樣做,是不能夠找到的元素。這可能是由於1號?
  • 如果測試平臺是無法處理的JSP登錄,那麼這將是無用的我的應用程序。任何幫助是極大的讚賞。我能做些什麼不正確的事情導致我的問題?

    回答

    1

    創造了這個問題 https://github.com/rogozinds/testbenchexample

    您正在使用什麼版本的測試平臺的一個簡單的測試例子? 你可以嘗試運行它,而不使用ChromeDriverManager,只需下載 chromedriver https://sites.google.com/a/chromium.org/chromedriver/downloads 並將其添加到您的系統路徑。

    getDriver()。get(URL) - 至少應該打開一個新的Chrome瀏覽器窗口並導航到URL。但據我瞭解,這沒有發生?

    P.S我試過你的例子,在沒有ChromeDriverManager和簡單的index.html文件的情況下使用Testbench 5。

    +0

    請在評論部分提問。 – Avinash

    +0

    我更新到4.2,使用geckodriver的Firefox將打開,但無法導航到URL。它曾經有過「數據」。在地址欄中,這很奇怪。 Chrome使用正確的Url打開一次,並加載了jsp登錄頁面。還沒有能夠重現。 – fakataha

    相關問題