Перейти к содержимому

TatyanaV

Регистрация: 18 июл 2012
Offline Активность: 29 окт 2019 09:23
*****

#159696 Java+TestNG+WebDriver:Как обернуть код в тесте, чтобы не писать его м

Написано TatyanaV 17 апреля 2017 - 13:31

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();

Я бы перенесла в getDriver() с небольшой модицикацией:

public static WebDriver getDriver() {
     if (driver == null) driver = new FirefoxDriver();
     driver.manage().window().maximize();
     return driver;
}

Сама переменная driver - static.

Тогда помимо кода - будет экономиться ещё и время на запуск нового браузера каждый раз.

Только тут нужно будет самостоятельно следить за готовностью системы (к примеру, логаут делать, если следующий тест опять логин будет проверять).


  • 1


#156365 Как вы именуете методы/переменные?

Написано TatyanaV 24 ноября 2016 - 14:55

Скажите как вы решили задачу нэйминга у себя на проекте. Имена переменных/методов/данных переводились на английский или транслит или что? Мне просто интересен опыт других. 

Переводились откуда? Они изначально создавались мною на английском. Транслит - вообще не знаю такого слова, когда речь заходит о коде. 

У меня проект автотестов - на джаве. У меня в принципе не было "задачи нейминга", есть просто Java и принятые в ней стандарты.


  • 1


#156360 Как вы именуете методы/переменные?

Написано TatyanaV 24 ноября 2016 - 13:37

Насколько я помню, в allure можно с помощью аннотации задать название, которое будет выводиться в отчете.

В коде остается "test authorization", в отчете выбранная замена, например, "Тест авторизации".

Переделывать код ради чьего-то удобства в сторону ухода от общепринятых стандартов, я думаю неправильно.

В джаве есть возможность добавлять к методам специальные комментарии, из которых можно сгенерить документацию (на любом языке, какой хочется, на каком напишите).

Может быть и в Python можно сделать что-то подобное. Во всяком случае, комментарии там точно должны быть.


  • 1


#156262 Работа с DOM

Написано TatyanaV 21 ноября 2016 - 11:34

Зачем же Вы людей оскорбляете?

Вы не хотите учиться, предпочитая, чтобы Вам все разжевали другие.

Не всем нравится подобное неуважение к профессии.

 

п.с.: скорее всего, 99.999999999999% того, что вы учили в школе - Вам на тот момент было абсолютно не нужно и скорее всего 99.999999999999% Вы уже забыли. По вашей логике - в школу Вы вообще зря ходили.

И если уж Вы столкнулись с какой-то проблемой (а с гуглом Вы вроде как тоже не дружите) вполне достаточно прочитать из всего учебника только пару страниц с содержанием (в поисках нужной темы) и пару страницу соответствующего раздела.

И хотя бы первые 1-2 главы, чтобы понимать синтаксис и не путать код Java с кодом Python.

Так что совет, за который Вы грубили человеку чуть ранее, более чем адекватный.

п.п.с: 1000 страниц аж за полгода-год? Ужас какой.


  • 1


#156139 Эмуляция нажатия клавиш варианты

Написано TatyanaV 15 ноября 2016 - 14:40

Может быть и код написать вместо Вас?

Судя по количеству тем - у Вас на каждый вздох вопросы сплошные. 

Мне кажется Вам стоит пройти курс хотя бы по основам селениума, чтобы хотя бы знать его возможности и знать, что гуглить в различных ситуациях.

Ну и заодно - поучиться использовать гугл. Без этого вообще никуда.

 

По Actions есть куча страниц с примерами реализаций различных кейсов. 

Есть куча тем / вопросов на stackoverflow.


  • 2


#153384 Вызвать ошибку от testng (Selenium, Java)

Написано TatyanaV 09 августа 2016 - 06:42

Татьяна, я знаком с assertTrue, поверьте на слово. Мне не очень понятно ,почему в каждом посте вы усердно настаиваите на своих вариантах, как на эталоне написания тестов. Это всего лишь Ваше мнение и все ...

Хотя вариантов написания множество и каждый пишет, как ему нравится и под свои какие то здачи.Захотел человек так зафейлить тест, ну и что такого, если такая возможность есть в TestNG ?

По поводу варианта elvis

по мне

 

ошибка expected [true] but found [false]

выглядит менее читаемо в отчете, чем

ошибка

Причем тут "эталон написания тестов"? Я нигде не настаиваю, что мой вариант единственно верный. Даже наоборот - не раз писала, что выбранный мной путь развития скриптов не идеален. Вы что-то путаете.

 

Assert.assertTrue(false, "ошибка"); 

     java.lang.AssertionError: Не найден текст ошибки имени 

     Expected :true
     Actual   :false

Assert.fail("ошибка");

     java.lang.AssertionError: Не найден текст ошибки имени

 

 

При этом в коде:

 

if (<все хорошо>) {

   <что-то делаем>;

} else {

    Assert.fail("ошибка");

}

 

Или

 

Assert.assertTrue(<все хорошо>, "ошибка");

<что-то делаем>;

 

Сложный выбор конечно. 

Но каждый сам делает так, как ему нагляднее и удобнее (не только в плане аккуратности логов, но и в плане аккуратности кода).

 

п.с.: если бы Вы не стали настаивать, что "выдаст что ожидали тру но получили фалс. и все" (хотя это абсолютно не так) - дискуссия дальше не пошла бы, каждый остался бы при своем варианте. Но Вы сами почему то решили доказать всем вокруг, что Ваш вариант единственно верный, используя в качестве аргумента - неверную информацию.

 

п.п.с.: "Захотел человек так зафейлить тест, ну и что такого, если такая возможность есть в TestNG ?" - вообще не понятный мне вопрос. Вариант, который предложили я и elvis - также использует стандартные возможности TestNG и также фейлит тест, как и нужно было автору темы.


  • 2


#152586 isDisplayed=true но ElementNotFound

Написано TatyanaV 11 июля 2016 - 14:42

Вы привели код только самого элемента.

К примеру, если есть элемент А, который лежит внутри Б, который лежит внутри С. При этом вы дали код элемента А, а "невидимым" все этот блок делается в рамках С.

Можно попробовать посмотреть элементы выше по иерархии.

Плюс, как Вам уже писали выше, попробуйте использовать ExpectedConditions, но не видимость ожидайте, а кликабельность (elementToBeClickable).


  • 1


#151835 выбор элемента из списка с помощью Selenium + Python

Написано TatyanaV 07 июня 2016 - 14:53

$x("//div[@class='portlet-content']//a[@id='tree36']") - 1 результат
$x("//*[@id='tree36']") - 2 результат (пункт в верхнем меню и в меню слева)

$$("div.portlet-content a#tree36") - 1 результат.

 

По сути результаты все одинаковые . Подсвечивает одно и тоже

Совершенно верно. 1ый и 3ий - одно и тоже, но в одном случае через xpath, во втором - через css.

А во втором вам виден только 1 элемент, поэтому только он и подсвечивается.

Используйте в своем скрипте либо 1ый, либо 3ий - и будем вам счастье.


  • 1


#151825 выбор элемента из списка с помощью Selenium + Python

Написано TatyanaV 07 июня 2016 - 14:32

$$("tree36_xpath")

Попробовал, приходит []

Так такого и нету. 

"_xpath" и "_css" чтобы указать, где css использовать, где xpath. 

Указывайте просто локатор свой.

Только "tree36" - не локатор.

 

Попробуйте поискать вот так:

$x("//div[@class='portlet-content']//a[@id='tree36']") 

$x("//*[@id='tree36']")

$$("div.portlet-content a#tree36")

$$("#tree36")

 

# = id, . = class

 

На примере: $$("#tree36")

$$ - значит указан css локатор, надо по нему искать

# - айдишник

tree36 - название айдишника

было бы a#tree36 - искался бы элемент а с таким айдишником, без указания - любой с таким айдишником.

 

Тоже самое: $x("//*[@id='tree36']")

$x - надо искать по xpath

//* - любой элемент где-то на странице

[@id='tree36'] - id у этого элемента д.б. tree36

 

Вам надо попробовать просто через хром попрактиковаться локаторы искать/писать.


  • 1


#151644 selenium IDE не могу вписать текст в поле

Написано TatyanaV 01 июня 2016 - 09:40

При чем тут видео и платформа (что в ней не так, кстати?), к цитате вполне конкретного поста, и уж тем более - причем тут моя фамилия - мне не понятно. Вам написали совет и возможный вариант - Вы не только проверить сами не захотели, но и в справку не заглядывали, судя по Вашему вопросу.

Удачи Вам в ожидании, пока кто-нибудь за Вас не только придумает способ решения, но и оттестит его.


  • 1


#151640 selenium IDE не могу вписать текст в поле

Написано TatyanaV 01 июня 2016 - 09:13

Вам нужно, чтобы кто-то написал нужный вам код, оттестировал его и выдал Вам сразу в готовом проверенном виде?..

И странно, что Вы не знаете, не из справки ли это - справку Вы бы и сами могли бы посмотреть и проверить...


  • 1


#150062 Поиск элемента, если в class содержится несколько слов, разделенных пр

Написано TatyanaV 05 апреля 2016 - 07:10

Или через css: h1[class*='title_changeable_yes']
  • 1


#148571 Как записать в лог исключение Selenium Webdriver

Написано TatyanaV 16 февраля 2016 - 13:18

У меня тоже любые ошибки какой угодно вложенности могут завалить тест, если только их заранее не перехватить через try/catch. Поэтому и предположила, что где-то перехватываются они у спрашивающего.


  • 1


#148568 Как записать в лог исключение Selenium Webdriver

Написано TatyanaV 16 февраля 2016 - 12:54

Может быть у вас ошибка в третьем классе по пути обратно к первому как-то перехвачена была? 

И что за ошибка была? Exception?


  • 1


#148036 CI в nUnit 3 + TFS

Написано TatyanaV 25 января 2016 - 06:50

Решил проблему, тему прошу удалить

Вы знаете, как это раздражает, когда сталкиваешься с какой-то проблемой, находишь наконец на каком-нибудь форуме тему об аналогичной ситуации... а в конце "я все решил, тему удалите", и ни ползвука о том, в чем же была проблема и как она решена?


  • 1