我試圖用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斷言。但是,它未能找到元素。
我想我在這裏有兩個問題。
- 瀏覽器不打開/導航到URL。如果Chrome已經打開,則Chrome在運行測試時不會打開新標籤頁。另外,如果我允許它啓動瀏覽器,它不會打開一個頁面(在Mac OSX上),所以我從不可以直觀地確認它導航到URL。
我試過用Firefox,它顯然有很多Selenium和PhantomJS的問題,它有最新的二進制文件中缺少.lib文件的問題。使用WebDriverManager,我降級到PhantomJS 2.0,但超時等待http://localhost:29436/status。
- 如果它「成功」導航至的URL,如鉻說這樣做,是不能夠找到的元素。這可能是由於1號?
如果測試平臺是無法處理的JSP登錄,那麼這將是無用的我的應用程序。任何幫助是極大的讚賞。我能做些什麼不正確的事情導致我的問題?
請在評論部分提問。 – Avinash
我更新到4.2,使用geckodriver的Firefox將打開,但無法導航到URL。它曾經有過「數據」。在地址欄中,這很奇怪。 Chrome使用正確的Url打開一次,並加載了jsp登錄頁面。還沒有能夠重現。 – fakataha