2.0.0b14
flatten args in have.texts & co
NEW
command.js.set_style_property(name, value)
from selene.support.shared import browser
from selene import command
# calling on element
overlay = browser.element('#overlay')
overlay.perform(command.js.set_style_property('display', 'none'))
# can be also called on collection of elements:
ads = browser.all('[id^=google_ads][id$=container__]')
ads.perform(command.js.set_style_property('display', 'none'))
added conditions: have.values
and have.values_containing
all conditions like have.texts
& have.exact_texts
– flatten passed lists of texts
This allows to pass args as lists (even nested) not just as varagrs.
from selene.support.shared import browser
from selene import have
"""
# GIVEN html page with:
<table>
<tr class="row">
<td class="cell">A1</td><td class="cell">A2</td>
</tr>
<tr class="row">
<td class="cell">B1</td><td class="cell">B2</td>
</tr>
</table>
"""
browser.all('.cell').should(
have.exact_texts('A1', 'A2', 'B1', 'B2')
)
browser.all('.cell').should(
have.exact_texts(['A1', 'A2', 'B1', 'B2'])
)
browser.all('.cell').should(
have.exact_texts(('A1', 'A2', 'B1', 'B2'))
)
browser.all('.cell').should(
have.exact_texts(
('A1', 'A2'),
('B1', 'B2'),
)
)
removed trimming text on conditions like have.exact_text, have.texts, etc.
because all string normalization is already done by Selenium Webdriver.