2013-05-21 4 views
0

Я пытаюсь проверить, что строка текста присутствует на загруженной странице с помощью webdriver. Я создал функцию - isTextPresent, затем вызывается функция в том же методе.webdriver - проверить текстовое представление на загруженной странице

Eclipse подсказал мне ошибку: метод IsTrue (boolean) не определен для типа Assert.

  1. Пожалуйста, сообщите мне, почему это не работает и как его исправить.
  2. whatis лучший подход для проверки текстовой презентации на веб-странице?

    2a. возможно ли проверить текстовое представление в первом фрагменте кода @Test?

    2b. какой тип ## Заголовок ## метода должен использовать в этом случае (открытый, закрытый или защищенный)?

Мой фрагмент кода:

import java.util.List; 
import java.util.concurrent.TimeUnit; 
import org.junit.*; 

import org.junit.Before; 
import org.junit.After; 
import org.openqa.selenium.*; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select; 

public class selftechyTestng 
{ 
    private WebDriver driver; 
    private String baseUrl; 

    @Before 
    public void setUp() throws Exception 
    { 
     driver = new FirefoxDriver(); 
     baseUrl = "http://selftechy.com/"; 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    } 

     //First Test Method 
     @Test 
    public void searchElements() throws Exception{ 
     driver.get(baseUrl); 
     driver.findElement(By.xpath("//a[@title='Selenium']")).click(); 

    } 



    @Test 
    public boolean isTextPresent(String txtValue){ 
     try{ 
      boolean b = driver.getPageSource().contains(txtValue); 
      return b; 
     } 
     catch (Exception e){ 
      return false; 
     } 
     Assert.IsTrue(isTextPresent("TestNG (Next Generation Testing Framework) – Understanding Annotations")); 


    } 



} 

Модификация я сделал, чтобы сделать вызов функции isElementPresent Добавление метода работы assertTrue() в searchElements() методы

assertTrue(isTextPresent(txtValue)); 

Способ isElementPresent

public boolean isTextPresent(String str1) 
    { 
     try 
     { 
      driver.get(baseUrl); 
      driver.findElement(By.xpath("//a[@title='Selenium']")).click(); 
      b = driver.getPageSource().contains(str1); 

      if(b){ 
       System.out.println("text presented on the page"); 
      } 
      else{ 
       System.out.println("text did not present on the page"); 
      } 
      return b; 
     } 
     catch (Exception e) 
     { 
      System.out.println(e.getMessage()); 
      return b; 
     } 

     //return b; 
    } 
+0

@ user1177636 Спасибо для ответа. Я использовал метод assertTrue() в своем коде с вызовом функции. Он работал, как ожидалось. – user2061466

ответ

2

или вы можете сделать это. Во-первых, удалите @Test аннотацию в методе и удалить Assert в конце:

public boolean isTextPresent(String txtValue){ 
     boolean b = false; 
    try{ 
     b = driver.getPageSource().contains(txtValue); 
     return b; 
    } 
    catch (Exception e){ 
     System.out.println(e.getMessage()); 
    }  
    finally{ 
     return b; 
    } 
} 

Тогда ваш тест будет выглядеть следующим образом

@Test 
public void searchElements() throws Exception{ 
    driver.get(baseUrl); 
    driver.findElement(By.xpath("//a[@title='Selenium']")).click(); 
    Assert.IsTrue(isTextPresent("TestNG (Next Generation Testing Framework) – Understanding Annotations")); 
} 
+0

Спасибо за подробный ответ.Я изменил свой код, используя ** assertTrue() ** метод для вызова функции ** isElementPresent **, и он сработал. Спасибо за вашу помощь! – user2061466

1

Я просто даю вам ключ ... Вы можете утверждать текст таким образом.

assertEquals(txtValue, "TestNG (Next Generation Testing Framework) – Understanding Annotations"); 

Обратится по ссылке для получения дополнительной информации о Assertions: http://testng.org/javadoc/org/testng/Assert.html

Вы можете использовать assertEquals (String1, String2). См этой ссылке: Java: Is assertEquals(String, String) reliable?

-Vikram

+0

Спасибо за ответ. Я использовал 'boolean b = driver.getPageSource(). (« TestNG (Framework для тестирования следующего поколения) - «Понимание аннотаций»); «затем с помощью инструкции if ... else для печати сообщения, чтобы показать, присутствует ли ожидаемый текст на страница. Я не совсем уверен, как правильно использовать assertEquals в моем случае. – user2061466

-2

Пример для C#

String OrgName = driver.FindElement(By.Id("")).GetAttribute("") 
Assert.True(driver.FindElement(By.XPath("")).Text.Contains(OrgName)); 
Смежные вопросы