Skip to content

Commit

Permalink
NEW: added command.js.remove & similar:
Browse files Browse the repository at this point in the history
- set_style_display_to_none
- set_style_display_to_block
- set_style_visibility_to_hidden
- set_style_visibility_to_visible

TODO:
- cover with tests
- consider approving element._execut_script, making it public
  • Loading branch information
yashaka committed Jun 24, 2022
1 parent 61f9afb commit 6c1bb5f
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 5 deletions.
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,24 @@
- should we make original config (not shared) mutable?
- TODO: support python 3.10 [#393](https://github.com/yashaka/selene/issues/393)

## 2.0.0b5 (to be released on xx.06.2022)
## 2.0.0b6 (to be released on xx.06.2022)
- TODO: trim text in have.exact_text


## 2.0.0b4 (to be released on 15.06.2022)
## 2.0.0b5 (to be released on 24.06.2022)
- NEW: added command.js.*:
- remove
- set_style_display_to_none
- set_style_display_to_block
- set_style_visibility_to_hidden
- set_style_visibility_to_visible
Example:
```
browser.all('[id^=google_ads]').perform(command.js.remove)
```


## 2.0.0b4 (released on 15.06.2022)
- NEW: upgrade selenium to 4.2.0 & webdriver-manager to 3.7.0
- FIX: set_window_size in shared.browser.open
- FIX: provide correct chrome type for wdm
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Tests with Selene can be built either in a simple straightforward "selenide' sty

## Versions

* Latest recommended version to use is >= [2.0.0b4](https://pypi.org/project/selene/2.0.0b4/)
* Latest recommended version to use is >= [2.0.0b5](https://pypi.org/project/selene/2.0.0b5/)
* it's a completely new version of selene, with improved API and speed
* supports 3.7 <= python <= 3.9,
* bundled with Selenium = 4.1
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "selene"
version = "2.0.0b4"
version = "2.0.0b5"
description = "User-oriented browser tests in Python (Selenide port)"
authors = ["Iakiv Kramarenko <yashaka@gmail.com>"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion selene/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@
# """
# todo: add here some type imports like Element, Collection, etc.

__version__ = '2.0.0b4'
__version__ = '2.0.0b5'

# --- DEPRECATED, and will be removed soon --- #

Expand Down
69 changes: 69 additions & 0 deletions selene/core/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,72 @@ def fn(element: Element):
})(arguments[0]);"""
),
)

# remove = Command(
# 'remove',
# lambda element: element.execute_script(
# """return (function(element) {
# element.remove();
# })(arguments[0]);"""
# ),
# )

remove = Command(
'remove',
lambda entity: (
entity._execute_script('element.remove()')
if not hasattr(entity, '__iter__')
else [
element._execute_script('element.remove()')
for element in entity
]
),
)

set_style_display_to_none = Command(
'set element.style.display="none"',
lambda entity: (
entity._execute_script('element.style.display="none"')
if not hasattr(entity, '__iter__')
else [
element._execute_script('element.style.display="none"')
for element in entity
]
),
)

set_style_display_to_block = Command(
'set element.style.display="block"',
lambda entity: (
entity._execute_script('element.style.display="block"')
if not hasattr(entity, '__iter__')
else [
element._execute_script('element.style.display="block"')
for element in entity
]
),
)

set_style_visibility_to_hidden = Command(
'set element.style.visibility="hidden"',
lambda entity: (
entity._execute_script('element.style.visibility="hidden"')
if not hasattr(entity, '__iter__')
else [
element._execute_script('element.style.visibility="hidden"')
for element in entity
]
),
)

set_style_visibility_to_visible = Command(
'set element.style.visibility="visible"',
lambda entity: (
entity._execute_script('element.style.visibility="visible"')
if not hasattr(entity, '__iter__')
else [
element._execute_script('element.style.visibility="visible"')
for element in entity
]
),
)

0 comments on commit 6c1bb5f

Please sign in to comment.