Loading...
Pinchfire avatar Pinchfire 0 Точки

[Homework] Test Automation Introduction. Selenium. Lab on Selenium

Здравейте,

Мъча се от няколко часа с проблем 3 от упражнението - https://softuni.bg/trainings/resources/officedocument/12833/exercise-problem-descriptions-qa-fundamentals-january-2017. Изписва ми следната грешка:

 

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases

След около 1-2 часа ровене из нета, тестване на различни опции като:

System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");

WebDriver driver = new FirefoxDriver();

нямам абсолютна никаква идея как да подходя към проблема. Принципно с Add-On от Firefox всичко си върви добре. Трябваше да сваля една добавка (Selenium IDE Flow Control), но го подкарах и си изпълни теста успешно. През Java обаче както съм споменал и по-горе удрям на камък.

Тагове:
0
QA Fundamentals 22/02/2017 14:22:10
vankatabe avatar vankatabe 76 Точки

На мен пък с IDE-то не ми тръгна - явно защото не съм свалил тази Selenium IDE Flow Control добавка. Благодаря.

По твоя въпрос:

1. Сваляш си Gecko dviver-a  за Firefox от https://github.com/mozilla/geckodriver/releases

2. После си го разархивираш някъде

3. После пишеш в

@Before

следният ред с пътя до драйвъра, който разархивира в т.2:

System.setProperty("webdriver.gecko.driver","C:\\Users\\vankatabe\\Documents\\QA\\geckodriver-v0.14.0-win64\\geckodriver.exe");

 

Аз имам също въпросче за Задача 5, точка 9: Не мога да локализирам в инбокса на АБВ елемента, в който се съдържа подателя на писмото, за да мога да го проверя. X-path и CSS селектори - нищо не достига до там. Най-доброто, до което стигнах и работи, е (но пък тогава няма къде да сложа assert) :

WebElement testEmailFrom = driver.findElement(By.xpath("//div[contains(.,'{podatelqt}')]"));

:(

0
22/02/2017 15:09:54
vankatabe avatar vankatabe 76 Точки

Къф съм тъп!!!???

Благодаря за Selenium IDE Flow Control - много ми помогна. Аз така и не се занимах да си го плейна кейса през ИДЕ-то, но той ми отвори очите, че след като намеря полето, съдържащо името на подателя, съм забравил да напиша getText() и то ми сравнява от едната страна името на полето, вместо съдържанието му, с очакваното съдържание от другата страна.

 

Ок, минаваме на задача 6! cool

0
22/02/2017 15:56:38
Pinchfire avatar Pinchfire 0 Точки

yes Честито! И аз като на магия успях да свърша работа. С хиляда преправки, но тръгна. Maven Compiler Plugin-a си е взимал грешна версия и ми подаваше грешка. Въведох:

<build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

след </dependencies>. и с

public class AbvTest {
    WebDriver driver;

    @Before
    public void setUp() {
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
        driver = new FirefoxDriver();
        }

взе че проработи.

0
vankatabe avatar vankatabe 76 Точки

Между другото,

Както упражненето, така и небрежно добавените .7z файлове, са от курса миналата година. Видеата от м.г. са доста полезни, а и така ще разберете аджеба кви са тия тестове в .7z файлчетата.

В същото видео ще видите и стъпките от упражнението, как да си настроите IntelliJ и въобще ще научите много повече за automation testing-а, отколкото докато се взирахме като напушени жаби в екрана, на който Евгени се опитваше да направи някакъв automation с http://webdriver.io/

0
22/02/2017 16:43:13
AlexanderBindev avatar AlexanderBindev 3 Точки

Доста несериозно ми изглежда отношението към този курс от страна на организаторите. Дано и другите да не са такива.

За мен е безотговорно да имаш домашно, което си се постарал да направиш и да няма възможност за проверка.

Явно трбява да се гледат видеата от миналия курс също така.

 

В последната лекция за мен поне беше интересно точно защо не работеха локаторите. Вкъщи разгледах сайта, почетох и си поиграх малко. Предположих, че локатора нещо си прави шеги защото е във footer-a  и и работещото решение се оказа нещо от рода:

driver = webdriver

footer = driver.find_element(By.CLASS_NAME, 'footer-list')
about = footer.find_element(By.CSS_SELECTOR, 'a[href="/about"]')

about.click()

 

Аналогично и за бутона за смяна на езици.

 

Това ако на някой му е интересно. Ако не ви е интересно не гледайте горното ;)

0
Iliev88 avatar Iliev88 39 Точки

Да добавя и едно свое питане:

Само на мен ли няма активно качване на домашното от лекцията или на всички е така?

Доста интересно би ми било да мога да разгледам чужди решения, а и моите да бъдат прегледани.

0
vankatabe avatar vankatabe 76 Точки

@ AlexanderBindev

Наистина много импотентен курс. Дали защото е "безплатен"? Все пак има хора, платили за място в залата или за изпит... :/ Несериозна (българска?) работа.

Благодаря за решението. Аз така се вглъбих в задачите "домашното" тези дни, че все още не съм сколасал да отработя упражнението със селектора на езика. :)

Домашното го направих на Java с IntelliJ, не съм гледал и този webdriver io.

 

@ Iliev88

Да, би било интересно. Но и при мен няма линк за качване на домашно. И никога не е имало линк за проверка на чуждо домашно.

0
24/02/2017 10:00:40
Quirk avatar Quirk 2 Точки

Някой да има идея, защо assertEquals проверката хвърля грешка, при положение, че съм изпълнил (уж) нещата:

//кодът на проверката

assertEquals(


        "https://nm80.abv.bg/Mail.html",
        driver.getCurrentUrl()

);

 

//кодът в @Before

@Before
public void setUp(){

    System.setProperty("webdriver.gecko.driver","C:\\Users\\Quirk\\Desktop\\SoftUni\\QA_2017-01-16\\geckodriver.exe");

    driver = new FirefoxDriver ();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

}

 

И въпреки това, накрая ми хвърля ето това:

org.junit.ComparisonFailure: 
Expected :https://nm80.abv.bg/Mail.html
Actual   :https://www.abv.bg/

 

 

0
AlexanderBindev avatar AlexanderBindev 3 Точки

Вероятно прави проверката преди да е заредила страницата. На implicit wait аз не бих имал доверие.

Пробвай с explicit wait.

Ако те домързи с цел дебъгване можеш да използваш thread.sleep() преди assert-a.

 

0
SylviaPetrova avatar SylviaPetrova 2 Точки

Здравейте, Аз се опитвам да подкарам тест с Visual studio, неуспешно за сега. Ако някой се е сблъсквал с подобен проблем ще съм благодарна ако сподели опит.

 

 

 

0
Quirk avatar Quirk 2 Точки

@Alexander - благодаря, оправих се!

@Sylvia - това може да ти свърши работа - http://stackoverflow.com/questions/3363106/a-project-with-an-output-type-of-class-library-cannot-be-started-directly

 

Колеги, аз нещо забих при опит за локализиране на userName selector-а. Тестът ми хвърля някаква грешка (Error communicating with the remote browser. It may have died) и оттам надолу нищо не сработва... Някой ако може да сподели работещ код или да даде някаква идея... 

 

 WebElement fullname = driver.findElement(By.cssSelector("css=div.userName"));
        assertEquals(
                "Test User",
                fullname.getText()
        );

 

 

0
vankatabe avatar vankatabe 76 Точки

Знаех си аз, че има по-елегантно решение на задача 6 - да постнеш issue в Github, от това да навигираш с бутончетата в уебстраницата на Github - отговорът е GitHub API: https://git-scm.com/book/en/v2/GitHub-Scripting-GitHub#_commenting_on_an_issue

Ще го разпиша тези дни да го пробвам как става за ново issue, а не само за коментиране cool

0
02/03/2017 15:13:28
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.