[英]How to verify tooltip text using Selenium WebDriver with java on a webpage
[英]Selenium Webdriver: How to verify that the required webpage is loaded
我正在使用Selenium Webdriver自動化網站測試。 在每個事件之后,我都想驗證操作是否成功。 最好的方法是什么。 例如,當用戶單擊“登錄”按鈕時,如何驗證是否加載了正確的網頁? 我現在正在做的一件事是獲取結果頁面的來源,並在該頁面中查找特定單詞以進行確認。 如果有這些單詞,我認為頁面確實已加載。 但是我不認為這是個好方法。
如果您使用的是Selenium Webdriver,則顯然可以使用WebDriver.findElement(通過locator)檢查某個對象是否僅會在您等待的頁面中。 例如,要檢查登錄是否成功,可以驗證頁面中是否存在“注銷”對象。
您無需獲取源代碼並檢查所需的文本。 如果“注銷”按鈕的ID為“注銷”,則下面的行適用於您...
assertTrue(driver.findElements(By.id("Logout").length > 0);
您應該測試常規功能,而不是樣式等正確。 與手動測試相比,自動測試的優勢在於,使用多種不同的數據測試事物確實非常容易,並且更改后可以快速重新運行它們。 通常,您假設頁面看上去正確,並且只想在多種不同情況下測試程序邏輯。
例如,如果您登錄,請檢查用戶是否顯示為已登錄狀態,並假設正確顯示了首頁(通過一些僅顯示在首頁上特定位置的文本)。 或者,如果您有一個多頁表單,其中用戶正在輸入各種數據,請檢查摘要頁是否正確列出了所有內容。
不要檢查獲取整個源並進行解析,而是應該使用類似以下內容的東西:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import org.junit.*;
public class LoginTest extends WebDriverTest /* This would be your own superclass, from which you inherit the WebDriver instance. */ {
private User user = new User();
@Before
public void setUp() {
user.setName("Test Tommy");
user.setPassword("foobar");
}
@Test
public void userNameShouldBeShownAfterLogin() {
// Go to your page and do the login, then wait for page load.
String userNameOnPage = driver.findElement(By.id("usernameAfterLogin"));
assertThat(userNameOnPage, is(equalTo(user.getName())));
}
}
頁面對象設計模式將是滿足您需求的理想選擇。 這一切都帶來了其他好處。 引用此鏈接https://code.google.com/p/selenium/wiki/PageObjects
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.