Testowanie w Selenium

0

Mam pewien problem.

Nie wszystko oddalem na czerwiec… Jeden przedmiot mam na wrzesień. Strony WWW z Django.

Muszę oddać zadanie zaliczeniowe przez wakacje. Wymóg jest taki, że należy przygotować kompletny zestaw testów w Selenium.

No i na tym się naciąłem.

• Na stronie o całej Polsce ma być mapa Polski z podziałem na województwa. Województwa mają być klikalne i mają stanowić odnośniki do podstron o konretnych województwach. Ja to zaimplementowałem prosto: <map><area>…</area><area>…</area></map> No ale z tego co mi wiadomo, Selenium nie może klikać na <area>, bo tego tam nie zaimplementowano!!

• Django ma jednak pewne opóźnienia. Oznacza to, że ciąg poleceń typu self.selenium.find_element_by_cośtam(cośtam).click() może rzucać wyjątki, bo selenium szybciej próbuje znajdować element na stronie, niż serwer testowy zdąży ten element wysłać! Pomogło self.selenium.implicitly_wait(10). Ale to nie wszystko. Selenium chyba losowo, z przyczyn dla mnie niepoznanych, czasami omija klikanie na jeden konkretny przycisk. Raz uruchomię test i Selenium klika. Drugi raz uruchomię i nie klika. Jak nie kliknie, to oczywiście później nie może znaleźć na stronie co tam powinno znaleźć, i jest wyjątek.

Jak to ogarnąć?

0

Najczęściej Selenium nie klika jak na stronie można znaleźć dwa elementy pasujące do XPatha. Zobacz sobie czy jak puścisz pierwszy raz i nie wyczyścisz danych to podany XPATH nie zwraca więcej niż jednego wyniku.

0

Cześć

Mam następujący problem. Piszę test automatyczny który polega na dodaniu opinii przez użytkownika po dokonaniu zakupu. Aby nie powtarzać kodu, w teście tym używam innego testu, który wypełnia mi formularz danych osoby zamawiającej. Mój problem polega na tym, że otwiera mi się dwa razy okno przeglądarki. Natomiast test wykonywany jest tylko w jednym z nich. W drugim oknie brak akcji. Nie mogę nigdzie odszukać info jak zrobić aby otwierane było tylko jedno okno(z testu właściwego, a nie tego który używam ponownie). Dodam, że projekt jest w oparciu o POP oraz że pobieram klasę testową w której nie ma akcji otwierania przeglądarki (jest to zaimplementowane w Before).

Dopiero się uczę więc proszę o wyrozumiałość :)

0
Kasia Tester napisał(a):

Cześć

Mam następujący problem. Piszę test automatyczny który polega na dodaniu opinii przez użytkownika po dokonaniu zakupu. Aby nie powtarzać kodu, w teście tym używam innego testu, który wypełnia mi formularz danych osoby zamawiającej. Mój problem polega na tym, że otwiera mi się dwa razy okno przeglądarki. Natomiast test wykonywany jest tylko w jednym z nich. W drugim oknie brak akcji. Nie mogę nigdzie odszukać info jak zrobić aby otwierane było tylko jedno okno(z testu właściwego, a nie tego który używam ponownie). Dodam, że projekt jest w oparciu o POP oraz że pobieram klasę testową w której nie ma akcji otwierania przeglądarki (jest to zaimplementowane w Before).

Dopiero się uczę więc proszę o wyrozumiałość :)

PS. dodam jeszcze że pisze w java

0

A dlaczego używasz testu w teście, zamiast zrobić metodę do wypełniania danych i używać jej tu i tu? :) Poczytaj o Page Object Pattern.

0

Cześć, tym razem trochę inny problem .

Ma napisanych kilka testów z użyciem POP. Wszystkie testy odpalałam z chrome driver. Postanowiłam napisać klasę w której określę drivery do innych przeglądarek. Wygląda ona tak:

public class BrowserFactory {

static WebDriver driver;

static String url = "https://pocztakwiatowa.pl";

public static WebDriver BrowserFactorysetting(String browserName) throws InterruptedException {


    if (browserName.equalsIgnoreCase("Chrome")) {
        driver = new ChromeDriver();

    } else if (browserName.equalsIgnoreCase("ie")) {
        driver = new InternetExplorerDriver();
    }
    else if
        (browserName.equalsIgnoreCase("firefox")){
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        driver = new FirefoxDriver(capabilities);
    }
    driver.get(url);
    driver.manage().window().maximize();
    return driver;
}

}

Mój obecny problem to FF. Gdy chcę swój testy odpalić wywala mi komunikat (wszystkie x to oczywiście jakieś wartości)
"Usage:
C:\ffDriver\geckodriver.exe [OPTIONS]
C:\ffDriver\geckodriver.exe: Unknown option --port=xxxxx

org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:xxxxx [localhost/xxx.x.x.x, localhost/xxx:x] failed: Connection refused: connect
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T2139.354Z'
System info: host: 'DESKTOP', ip: 'xxxxx ', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
Driver info: driver.version: FirefoxDriver"

Nie mogę znaleźć rozwiązania, ani przyczyny czemu test z FF nie działa. Dla Chroma działa wszystko.

Czy ktoś jest mi w stanie powiedzieć o co chodzi ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1