Witam ,
Otóż mam taki problem z Selenium Webdriver.
Zaczynam pisać testy w tej technologi wykorzystując wzorzec Page Object Pattern.
**I moje problemy są następujące: **
-
Nie mam możliwości wyświetlania i zapisywania logów - nie wiem czy potrzebny jakiś dodatkowy Framework?
-
Czy posiada ktoś może jakiś przykładowy szablon podziału na klasy aplikacji np. w jednej klasie sa dane konfiguracji ( Przeglądarka , adres www ) , w drugiej dane do logowania (login , password)
-
Jak uruchomię test to otwierają mi się 2 (albo 3) okna przeglądarki - zalogowanie przebiega poprawnie ale już przejście do modułu raporty to się wysypuje
Wcześniej tworzyłem w narzędziu Sahi dla aplikacji napisanej w PHP i tam działało wszytko prawidłowo , a aktualnie automatyzuje Aplikacje napisana w ASP.NET i Sahi nie działa - wiec wybrałem na Selenium WebDriver i
Tak mam podzielone KOD;
##** Program Uruchomieniowy**
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using test.Konfiguracja.Konfiguracje;
using test.PageObject.Logowanie;
using test.PageObject.Raporty;
namespace test
{
class Program:ClassUstawienia
{
static void Main(string[] args)
{
ClassUstawienia Otworz = new ClassUstawienia();
ClassLogowanie Zaloguj = new ClassLogowanie();
ClassRaporty Raporty = new ClassRaporty();
Zaloguj.Logowanie("[email protected]", "1234556"); //logowanie do strony
Raporty.Raporty(); //uruchomienie karty Raporty
}
}
}
##** Klasa z Konfiguracjami**
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace test.Konfiguracja.Konfiguracje
{
public class ClassUstawienia
{
public IWebDriver driver = new ChromeDriver();
public StringBuilder verificationErrors;
public string baseURL = "wp.pl";
}
}
##**PageObject Logowanie **
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using test.Konfiguracja.Konfiguracje;
namespace test.PageObject.Logowanie
{
class ClassLogowanie:ClassUstawienia
{
public void Logowanie(string Login, string Password)
{
driver.Navigate().GoToUrl(baseURL);
// Znajdz elemanty na stronie
var TextAreaLogin = driver.FindElement(By.Id("Email"));
var TextAreaPassword = driver.FindElement(By.Id("Password"));
var ButtonZaloguj = driver.FindElement(By.XPath("//button[@type='submit']"));
// Login i Haslo do konta
TextAreaLogin.SendKeys(Login);
TextAreaPassword.SendKeys(Password);
// i kliknij Zaloguj
ButtonZaloguj.Click();
}
}
}
##**PageObject z Raportami **
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using test.Konfiguracja.Konfiguracje;
namespace test.PageObject.Raporty
{
class ClassRaporty : ClassUstawienia
{
public void Raporty()
{
var MenuRaporty = driver.FindElement(By.XPath("//p[contains(.,'Raporty')]"));
var PodMenu1 = driver.FindElement(By.XPath("//a[contains(.,'Raport skuteczności kancelarii')]"));
var PodMenu2 = driver.FindElement(By.XPath("//a[contains(.,'Utwórz raporty - stare')]"));
var PodMenu3 = driver.FindElement(By.XPath("//a[@href='/CreditorOffice/ReportW1']"));
var PodMenu4 = driver.FindElement(By.XPath("//a[contains(.,'Pobierz pliki raportów')]"));
MenuRaporty.Click();
PodMenu1.Click();
PodMenu2.Click();
PodMenu3.Click();
PodMenu4.Click();
}
}
}
Każda uwaga z waszej strony będzie bardzo przydatna = Dziękuję
Dane podane są losowe