Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public <V> V assertThat(ExpectedCondition<V> condition) {
- return assertThat(condition, timeout);
- // (new WebDriverWait(getWebDriver(), Configuration.timeout)).until(condition);
- }
- /*
- Тут лучше не сокращать - полностью пиши Configuration.timeout
- цель - почетче дать понять - что это такое
- */
- ****************************
- public By byExactAttributeText
- /*
- будет правильнее
- public By byAttributeExactText - мы же про ExactText атрибута говорим)
- */
- *****************************
- public WebElement $(By locator) {
- return this.assertThat(visibilityOfElementLocated(locator));
- }
- /*
- тут вполне и без this можно обойтись
- вот неплохие линки - про использование this
- https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html
- http://stackoverflow.com/questions/2411270/when-should-i-use-this-in-a-class
- */
- ********************************
- public abstract class ConciseAPI {
- /*
- убери лишние комментарии
- реформатируй код
- разберись с пропусками строк - чтоб они помогали читать код и использовались логично
- упорядочь методы
- от общего к частному
- рядом - похожее и связанное
- касается и других классов
- */
- **************************************
- public void assertMail(int index, String text) {
- public void assertMails(String... mailTexts) {
- /*
- В обоих методах - используй одинаково
- mailText & mailTexts
- vs
- text & texts
- одно понятие - один термин
- */
- *****************************************
- public static ExpectedCondition<List<WebElement>> texts(final List<WebElement> elements, final String... expectedTexts) {
- public static ExpectedCondition<Boolean> sizeOf(final By elementsLocator, final int expectedSize) {
- public static ExpectedCondition<Boolean> minimumSizeOf(final By elementsLocator, final int expectedSize) {
- /*
- для всех кондишенов используй elementExceptionsCatcher
- такого рода проблемы могут возникнуть в любом из них
- */
- ******************************************************
- return format("\n listNthElementHasText should contain: %s\n while actual listNthElementHasText: %s\n list: %s\n",
- expectedTexts, elementTexts, elements);
- /*
- в фразе мы должны сказать - что проверяли, какое действительное значение и какое ожидаемое
- напоминаю - это кондишен texts )
- напоминаю - про Arrays.toString()
- */
- ***************************************************************
- return elementExceptionsCatcher(new ExpectedCondition<WebElement>() {
- private String actualText;
- List<String> elementTexts = new ArrayList<String>();
- public WebElement apply(WebDriver driver) {
- for (WebElement element : elements) {
- elementTexts.add(element.getText());
- }
- /*
- с каждым вызовом apply - строк в списке elementTexts
- будет все больше
- а тебе надо - чтобы после вызова apply - в этом списке был верный набор строк
- очищай список elementTexts или инициализируй его непосредственноперед циклом
- заметь - у тебя этот код повторяется в 2-ух кондишенах
- а раз так - реализуй метод List<String> getTexts(List<WebElement> elements)
- метод универсальный, может еще где-то пригодиться
- вынеси его в класс Helpers
- */
- WebElement element = elements.get(index);
- actualText = element.getText();
- /*
- ну... тут спорно)
- теоретически - можешь получить уже другой текст, нежели тот, который ранее получен в списке
- я бы текст уже брала из elementTexts
- */
- **************************************
- } catch (StaleElementReferenceException e) {
- return null;
- } catch (ElementNotVisibleException e) {
- return null;
- } catch (IndexOutOfBoundsException e) {
- return null;
- }
- /*
- одну catch-секцию реализуй
- http://stackoverflow.com/questions/3495926/can-i-catch-multiple-java-exceptions-in-the-same-catch-clause
- */
Add Comment
Please, Sign In to add comment