Exemplo n.º 1
0
def test_search():
    browser.open('https://www.ecosia.org/')

    s('[name=q]').type('yashaka selene').press_enter()
    ss('.result').first.click()

    ss('[href="/yashaka/selene"]').should(have.size(3))
Exemplo n.º 2
0
def test_duckduckgo_():
    """
    Straightforward/PageObjectLess style + s, ss for JQuery/Selenide's $, $$
    ========================================================================

    GO FOR:
    * the most concise
    * KISS (Keep It Simple Stupid), straightforward style
      * easy for newbies in automation (no need to learn modules/OOP(classes))
      * easy for some DEVs if they will use these tests (and they should!)
        they know selectors and internals of app they develop
        hence, building more abstractions (modules/classes) on top of more
        low level straightforward code (like below) would add too much complexity
        to them, and harder in day-to-day usage

    TRADEOFFS:
    - given selectors are duplicated all over the project code base
      when you want to change it
      then you have to use global Find&Replace text,
           with sometimes pretty thorough manual checks line by line
           all places where the change will be applied.
           You CAN'T use some refactoring features of IDE like Refactor>Rename
    """
    browser.open('https://duckduckgo.com/')

    s('[name=q]').type('yashaka selene python').press_enter()
    ss('.result__body') \
        .should(have.size_greater_than(5)) \
        .first.should(have.text('User-oriented Web UI browser tests'))

    ss('.result__body').first.s('a').click()
    browser.should(have.title_containing('yashaka/selene'))
def test_google_one(selene_config):
    start = time.time()
    logger.info(f'before start browser: {time.time() - start} seconds')
    browser.open("/")
    logger.info(f'browser start duration: {time.time() - start} seconds')
    s(by.name("q")).should(be.blank) \
        .type("selenium").press_enter()
    ss(".srg .g").should(have.size_greater_than(0)) \
        .first.should(have.text("Selenium automates browsers"))
Exemplo n.º 4
0
def test_search():
    # ARRANGE
    browser.open("https://www.ecosia.org/")

    # ACT
    s('[name="q"]').type("yashaka selene").press_enter()
    s('a.result-title').click()

    # ASSERT
    ss('[href="/yashaka/selene"]').should(have.size(3))
def test_google_two(selene_config):
    start = time.time()
    logger.info(f'before start browser: {time.time() - start} seconds')
    browser.open("/")
    logger.info(f'browser start duration: {time.time() - start} seconds')
    s(by.name("q")).should(be.blank) \
        .type("selenium").press_enter()
    ss(".srg .g").should(have.size_greater_than(0)) \
        .first.should(have.text("The Selenium project is a member of Software "
                                "Freedom Conservancy"))
Exemplo n.º 6
0
def test_search():
    # Arrange
    browser.open('https://www.ecosia.org/')

    # Act
    s('[data-test-id="search-form-input"]').type(
        'yashaka selene').press_enter()
    ss('.result').first.click()

    # Assert
    ss('[href="/yashaka/selene"]').should(have.size(3))
Exemplo n.º 7
0
 def __init__(self):
     self.login_form = s('#login_form')
     self.registration_form = s('#register_form')
     self.registration_email_field = s('#id_registration-email')
     self.registration_password_field = s('#id_registration-password1')
     self.registration_password_field_2 = s('#id_registration-password2')
     self.registration_button = s('[name="registration_submit"]')
     self.user_icon = s('.icon-user')
 def __init__(self):
     self.login_link = s('#login_link')
     self.basket_link = s('.btn-group .btn:nth-child(1)')
     self.basket_button = s('.btn-add-to-basket')
     self.product_name = s('.content h1')
     self.product_name_in_message = s('.alert:nth-child(1) strong')
     self.product_price = s('.product_main .price_color')
     self.product_price_in_message = s('.alert:nth-child(3) strong')
Exemplo n.º 9
0
def test_complete_todo():

    browser.open('http://todomvc.com/examples/emberjs/')

    s('#new-todo').type('a').press_enter()
    s('#new-todo').type('b').press_enter()
    s('#new-todo').type('c').press_enter()
    ss('#todo-list>li').should(have.exact_texts('a', 'b', 'c'))

    s('#todo-list>li:nth-of-type(2) .toggle').click()
    ss('#todo-list>li.completed').should(have.exact_texts('b'))
    ss('#todo-list>li:not(.completed)').should(have.exact_texts('a', 'c'))
Exemplo n.º 10
0
def test_adding_and_completing_tasks():
    s('#new-todo').type('a').press_enter()
    s('#new-todo').type('b').press_enter()
    s('#new-todo').type('c').press_enter()
    ss('#todo-list>li').should(have.exact_texts('a', 'b', 'c'))

    s('#todo-list>li:nth-child(2) .toggle').click()
    s('#todo-list>li:nth-child(2)').should(have.css_class('completed'))
    s('#todo-list>li:nth-child(1)').should(have.no.css_class('completed'))
    s('#todo-list>li:nth-child(3)').should(have.no.css_class('completed'))
Exemplo n.º 11
0
from selene import have
from selene.support.shared import browser
from selene.support.shared.jquery_style import s, ss

# ARRANGE
URL = 'https://www.ecosia.org/'
query_string = "'yashaka selene'"
# користувач завантажує сторінку в браузері: https://www.ecosia.org/
# browser.config.hold_browser_open = True
browser.open(URL)

# ACTS
# користувач в поле пошуку вводить текст 'yashaka selene'
# користувач натискає Enter
s('[placeholder="Search the web to plant trees..."]').type(query_string).press_enter()

# користувач переходить по першому посиланню серед знайдених результатів
s('[class="result-snippet-link"]').click()

# ASSERT
# користувач перевіряє що на відкритій сторінці
# є три локальні посилання на https://github.com/yashaka/selene
ss('[href="/yashaka/selene"]').should(have.size(3))

browser.quit()
Exemplo n.º 12
0
 def __init__(self):
     self.login_link = s('#login_link')
     self.basket_link = s('.btn-group .btn:nth-child(1)')
Exemplo n.º 13
0
from selene import have
from selene.support.shared import browser
from selene.support.shared.jquery_style import s, ss

# Arrange
browser.config.hold_browser_open = True
browser.open('https://www.ecosia.org/')

# Act
s('[data-test-id=search-form-input]').type('yashaka selene').press_enter()
browser.all('.result-snippet').first.click()

# Assert
ss('[href="/yashaka/selene"]').should(have.size(3))

browser.close()
 def login(self, username, password):
     self.open().should_be_opened()
     s(by.id('user-name')).should(be.blank).type(username)
     s(by.id('password')).should(be.blank).type(password)
     s(by.id('login-button')).should(be.clickable).click()
     return self
Exemplo n.º 15
0
 def items_left_should_be(self, amount: int):
     s('#todo-count>strong').should(have.exact_text(str(amount)))
     return self
Exemplo n.º 16
0
 def toggle_all(self):
     s('#toggle-all').click()
     return self
Exemplo n.º 17
0
 def menu_should_be_opened(self):
     s("div.bm-menu > nav.bm-item-list").should(be.visible)
     return self
Exemplo n.º 18
0
 def open_menu(self):
     s("div.bm-burger-button > button").click()
     return self
Exemplo n.º 19
0
from selene import have
from selene.support.shared import browser
from selene.support.shared.jquery_style import s, ss

# Arrange
browser.config.hold_browser_open = True
browser.open('https://google.com/ncr')

# Act
s('[type="text"]').type('yashaka selene').press_enter()
browser.all('#search .g').first.element('h3').click()

# Assert
ss('[href="/yashaka/selene"]').should(have.size(3))

browser.close()
Exemplo n.º 20
0
from selene import have
from selene.support.shared import browser
from selene.support.shared.jquery_style import s, ss

# Arrange
browser.config.hold_browser_open = True
browser.open('https://duckduckgo.com/')

# Act
s('[id=search_form_input_homepage]').type('yashaka selene').press_enter()
browser.all('.result:not(.result--more)').first.click()

# Assert
ss('[href="/yashaka/selene"]').should(have.size(3))

browser.close()
Exemplo n.º 21
0
 def step(text='yashaka selene python'):
     s('[name=q]').type(text).press_enter()
 def login_succeed(self):
     s(by.id('inventory_container')).should(be.existing)
Exemplo n.º 23
0
 def add(self, *names: str):
     for name in names:
         s('#new-todo').type(name).press_enter()
     return self
 def login_failed(self):
     s('h3[data-test="error"]')\
         .should(have.text("Epic sadface: Username and password do not match any user in this service"))\
         .s('button.error-button')
Exemplo n.º 25
0
 def __init__(self):
     self.todos = ss('#todo-list>li')
     self.clear_completed_button = s('#clear-completed')
Exemplo n.º 26
0
 def click_logout(self):
     self.menu_should_be_opened()
     s("div.bm-menu > nav.bm-item-list > #logout_sidebar_link").click()
     return self
Exemplo n.º 27
0
 def click_reset_app_state(self):
     self.menu_should_be_opened()
     s("div.bm-menu > nav.bm-item-list > #reset_sidebar_link").click()
     return self
Exemplo n.º 28
0
 def click_on_cart_icon(self):
     s("div.shopping_cart_container > a.shopping_cart_link").click()
     return self
Exemplo n.º 29
0
 def click_all_items(self):
     self.menu_should_be_opened()
     s("div.bm-menu > nav.bm-item-list > #inventory_sidebar_link").click()
     return self
Exemplo n.º 30
0
from selene import have
from selene.support.shared import browser
from selene.support.shared.jquery_style import s, ss

# ARRANGE
browser.config.hold_browser_open = True
browser.open('http://todomvc.com/examples/emberjs/')

# ACTS
s('[id="new-todo"]').type('Listen Lesson').press_enter()
s('[id="new-todo"]').type('Listen Book').press_enter()
s('[id="new-todo"]').type('Watch TV').press_enter()

# ASSERT
ss('[id="todo-list"] li').should(
    have.exact_texts('Listen Lesson.', 'Listen Book', 'Watch TV'))