Aktywne Wpisy
![Mrbimbek](https://wykop.pl/cdn/c3397992/Mrbimbek_4YnaLuhVpb,q60.jpg)
Mrbimbek +1225
Dwa lata temu pomagałem uchodźcom z Ukrainy którzy z jedną walizką uciekali przed wojną, była w tym rodzina z którą kontakt miałem chwilę dłużej, trzy dziewczyny z matką i dwójka dzieci, pomagałem im szukać pracy, tłumaczyć dokumenty, pomagałem w urzędach. Jedna z dziewczyn dziś się odezwała, wrócili na Ukrainę a kilka dni temu urodziła syna, przez to jak im pomogłem w najcięższym dla nich czasie nazwała syna moim imieniem, taka drobnostka a
Kurde zakładam działalność, ale nie mam pomysłu na nazwę. Pomyślałem, że może szanowne grono Mirków i mirabelek coś pomoże wymyślić. Zobowiązuję się do opłacenia dużej picki dla osoby, której pomysł wykorzystam.
O działalności: zajmuję się pracami na wysokości, zazwyczaj w dostępie linowym, czyli innymi słowy jestem alpinistą przemysłowym. Usługi, które świadczę, to: Mycie, malowanie dachów, oraz elewacji, wycinka, montaże konstrukcji i reklam, antykorozja, prace dekarskie (rynny, naprawa poszycia dachu, obróbki blacharskie, uszczelnienia
O działalności: zajmuję się pracami na wysokości, zazwyczaj w dostępie linowym, czyli innymi słowy jestem alpinistą przemysłowym. Usługi, które świadczę, to: Mycie, malowanie dachów, oraz elewacji, wycinka, montaże konstrukcji i reklam, antykorozja, prace dekarskie (rynny, naprawa poszycia dachu, obróbki blacharskie, uszczelnienia
Zaczynam powoli przygodę z automatyzacją. Odpaliłem sobie strony na których można ćwiczyć pisanie automatów. Używam Selenium Webdriver w Javie.
Niestety namierzanie elementów mnie pokonało. Nie potrafię poradzić sobię z namierzeniem pola w którym wpisuje się ilość produktów. Największy problem jest w tym, że "input class="form-control" w każdym divie jest taki sam. Elementem, który pozwoli na odróżnienie jednego diva od drugiego jest "button id", który znajduje się na tym samym poziomie co "form-control". Namierzać to w jakiś sposób xpathem?
(czego używacie w przeglądarkach dla przyspieszenia szukania xpathów?)
Help me.
https://buggy-testingcup.pgs-soft.com/task_1
http://i.imgur.com/kX1oUqh.png
źródło: comment_znrYxhDVu1rjAOf5m71xOhVP6s9evR6H.jpg
PobierzXPath z FirePath:
https://buggy-testingcup.pgs-soft.com/task_1
@PanKara: Nie zgodzę się. Z mojego doświadczenia wynika, że lepiej raz samemu napisać xpatha porządnie, niż 10 razy poprawiać to co zaproponował FirePath czy inny dodatek (a na koniec i tak przepisać po swojemu( ͡° ͜ʖ ͡°))
W tym przypadku, tak na szybko, można zrobić coś takiego:
//div[@class='input-group input-group-sm' and ./span/button[@data-product-name='Okulary']]/input
i zamiast "Okulary" podstawiasz dowolny inny przedmiot@kotoj: tak zgodze sie z Toba - ale na początek wystarczy. Na gotowym Xpathu może sobie już np skrócić scieżkę divów i otrzyma prawie o polowe krótsza scieżkę.
html/body/div[1]/div/div[2]/div[1]/form/div[1]/div[1]//input
i na tej bazie może kombinować dalej.Wszystko małymi kroczkami ( ͡° ͜ʖ ͡°)
@audiokoks: nie doczytałem do końca i link zobaczylem dopiero do
Dzięki Panowie, to teraz wytłumaczcie mi co, jak, gdzie i dlaczego?! O ile XPath którego napisał @kotoj da się zrozumieć, to tego co wypluł FirePath już całkowicie nie ogarniam.
public static void main(String[] args) throws InterruptedException{
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://buggy-testingcup.pgs-soft.com/task_1");
Thread.sleep(3000);
WebElement Okulary = driver.findElement(By.xpath("//input[@class='html/body/div/div/div[2]/div[1]/form/div[1]/div[1]/div/div/div/span/input']"));
Okulary.sendKeys("6");
}
Nie zabanglało. Coś źle zrobiłem?
To, co wypluwa FirePath to najprostsza i najbardziej wrażliwa na zmiany ścieżka.
Cała zabawa z xpathem polega na tym żeby po spojrzeniu na kod html użyć wiedzy z linku powyżej do napisania swojego xpatha, który będzie w miarę krótki i konkretny. Taki napisany XPath wklepujesz do FirePatha i klikasz Enter. W większości przypadków, gdy dostaniesz 1 rezultat, możesz śmiało swojego XPatha użyć w kodzie testu.
Przechodzi przez kolejne węzły i wypisuje to, który rozwinął.
Zaczyna od samej góry (html) i kończy na elemencie, którego xpatha chcesz. Jak wspomniano wyżej - zmieni sie cokolwiek na stronie to prawdopodobnie xpath się wysypie.
(na obrazku jedno div zignorowałem)
źródło: comment_jORmz1RIngdV9pvmzh3kYwi9yamVTkT0.jpg
Pobierz@audiokoks: sleep? staraj sie jak najmniej uzywac prostych waitów i sleepów, Implicit Waitsy są duzo bezpieczniejsze.
@venomik: Dzięki!
@Fristo: Zabieram się za czytanie, dzięki.
@test_user: Wrzucilem to na szybko, bo myślałem, że nie może namierzyć elementu przez to, że strona się nie załadowała. Staram się jak najmniej używać sleepów, itp.
@PanKara: wystarczy na chwilę, po dopisaniu kolejnych takich 5 xpathów nie będzie wiedział do czego był pierwszy. Poza tym to jest tak podatne na najdrobniejsze zmiany że szkoda gadać. Jeszcze raz - od poczatku uczyć się xpathów dobrze, później to się zwróci z nawiązką. Nie ma sensu uczyć się czegokolwiek dalej bez umiejętności pisania lokalizatorów. A nie jest to jakaś czarna magia, może kilka godzin nauki raptem (
( ͡° ͜ʖ ͡°)
Pierwszy "projekt" zrobiłem bez zastosowania page object pattern, od tamtej pory wiem, że tak nie można( ͡° ͜ʖ ͡°)
Ja tam jestem za tym zeby uczyl sie swoja sciezka bez narzucanych mu roznego rodzaju sztywnych ram bo sie chlopak zniecheci a tak malymi sukcesami niech brnie do przodu