qweb

Keyword driven automation for the web

APACHE-2.0 License

Downloads
14.4K
Stars
38
Committers
13

Bot releases are hidden (Show)

qweb - [3.2.1] - 2024-04-08 Latest Release

Published by tkoukkari 6 months ago

Fixed

  • RunBlock fails with uninformative error message
  • GetCellText and GetText not able to get text directly under <slot>
  • #141
    • Anchor coordinates were in some cases taken from parent, not from the element actually containing anchor text
  • New typing issue in selenium 4.19
  • Bumped Pillow to a version having latest security fixes
qweb - [3.2.0] - 2024-03-11

Published by tkoukkari 7 months ago

Added

  • Adds "strict mode" to SetConfig SearchDirection
  • Adds "delay" kwarg support to WriteText
  • Adds "partial_match" support to VerifyTable and Click Cell

Fixed

  • QWeb tries to inject JQuery to web pages #139
  • Let user decide if cookies are logged or not #138
  • Clean up unit tests and acceptance tests #90
  • Table keywords gave unhelpful error if UseTable was not used
  • VerifyLinks default timeout changed, wrong format was used previously
  • Many keyword doc fixes
qweb - [3.1.0] - 2024-01-26

Published by tkoukkari 9 months ago

Added

  • Support for Robot Framework 7
  • New keywords for handling table column headers:
    • GetColHeaderCount (Gets the amount of columns)
    • GetColHeader (Gets all column headers as list or specific column header based on index)
    • VerifyColHeader (Verifies that column headers includes specific text, optionally in specific position)

Fixed

  • Handling of booleans given in string format in OpenBrowser prefs (i.e… "True")

Changed

  • Updated workflow actions to newer version
  • Bumped lowest allowed Pillow version (security fixes)
qweb - [3.0.1] - 2023-12-21

Published by tkoukkari 10 months ago

Fixed

  • Browserstack desktop browser names changed to be case insensitive

Removed

  • Argument "reuse_service" removed from Safari as it was removed in selenium 4.16

Changed

  • Pylint version bumped
  • SwitchBrowser will try to focus on previously focused tab in order to bring window to foreground.
    • Success depends on os/window manager
  • Refactored QWeb/config as functions there were masked by keywords/config.
    • This will make it easier to use set_wait_function to override default wait function
qweb - [3.0.0] - 2023-10-20

Published by tkoukkari 12 months ago

Added

  • OpenBrowser keyword to support Selenium 4.10 and above
    • Service class taken into use
    • Support for automatic driver/browser management via Selenium Manager (if drivers are not in PATH)
    • Chrome: Support for specific browser_version (downloads Chrome for Testing if needed)
  • BrowserStack/mobile integration to support OS Version
  • Added "Introduction" section to keyword documentation

Changed

  • OpenBrowser kw documentation updated/more examples added, including BrowserStack usage and local android device usage.
  • DragDrop to support also elements that do not have "draggable" attribute set
  • Re-used variable "url" renamed in VerifyLinks
  • Security: bumped opencv and Pillow versions
  • Updated readme.md

Fixed

  • SetConfig HandleAlerts False was not raising exceptions
  • SetConfig argument types modified in order to avoid automatic type conversion
    • This fixes issue of using robot fw format (variable containing list) in SetConfig RunBefore

Removed

  • IE Support
  • Robot Framework 3.2.2 support (4.1.3 is the new minimum)
  • Python 3.7 support as it has been already EOL'd and some security fixes for dependencies are not released for Python 3.7
qweb - [2.2.3] - 2023-09-18

Published by tkoukkari about 1 year ago

Minor bug fix release.

Fixed

  • Regression: VerifyCheckboxValue not finding checkbox by label in specific views
  • Improved attribute search in specific Salesforce views

Added

  • Examples of using proxies, profiles and portable binary to OpenBrowser kw doc

Changed

  • Changed deprecated license_file parameter in setup.cfg
qweb - [2.2.2] - 2023-09-06

Published by tkoukkari about 1 year ago

Added

  • Enable using QWeb directly from Python

Fixed

  • ClickCell not clicking a sub-element when tag used
  • VerifyFile keyword not working correctly when ${BASE_IMAGE_PATH} variable is used

Changed

  • IsText default timeout increased to 0.5s
  • ScrollTo keyword to support anchor
  • Bumped opencv, selenium, Pillow, scikit-image, and requests dependency version.
qweb - [2.2.1] - 2023-08-02

Published by tkoukkari about 1 year ago

Minor bugfix release.

Fixed

  • Handled situation where Chrome v115 gives a new exception
  • Minor fix to improve finding input via label under shadow dom
qweb - [2.2.0] - 2023-06-14

Published by tkoukkari over 1 year ago

Added

  • New keyword Scroll for scrolling with keys (PageDown etc.) in cases where other scrolling means do not work reliably.

Changed

  • Updated pyobjc-core and pyobjc for Mac. This should enable direct installation with Python 3.11 on Mac.
  • Locked PyScreeze dependency version, as the latest one has a slight issue with Mac.
  • Bumped versions of testing dependencies.
  • Added Edge to Linux pipeline
  • Modified over aggressive "No Browser Open" error message. One should get more meaningful messages in other fatal cases, for example when webdriver / browser is not installed at all.
qweb - [2.1.2] - 2023-03-24

Published by tkoukkari over 1 year ago

Added

  • New InputHandler javascript for cases where send_keys does not work reliably (e.g. iPad)

Changed

  • CaptureIcon returns saved file's path in order to work same way as LogScreenshot
  • Minor documentation fixes
qweb - [2.1.1] - 2023-03-08

Published by tkoukkari over 1 year ago

Added

  • Updated dependencies to support Python 3.11

Fixed

  • Fixed regression where in special cases normal elements where not found correctly when Shadow DOM setting was on
qweb - [2.1.0] - 2023-02-06

Published by tkoukkari over 1 year ago

Added

  • Mobile emulation support to Open Browser
    • Open browser emulating different mobile device's screen resolution
    • Helps in making sure pages work correctly on mobile device resolution without using real devices
    • Example(s):
     # Mobile emulation
     OpenBrowser    http://google.com     chrome    emulation=iPhone SE
     OpenBrowser    http://google.com     chrome    emulation=375x812
    
    
    
    

Fixed

  • Improved Shadow DOM support for:
    • frames
    • clickable elements
    • elements having non-breaking spaces in text
  • Minor fixes to keyword documentation
qweb - [2.0.7] - 2022-12-14

Published by tkoukkari almost 2 years ago

Added

  • Update wheel to enable usage of Robot Framework 6.x

Fixed

  • Filter by modal dialog was not working with inputs, if found with css search
  • Improved ability to find dropdowns under shadow DOM

Changed

  • Minor updates to CI pipeline
  • Moved unnecessary log messages to debug logging level
qweb - [2.0.6] - 2022-11-23

Published by tkoukkari almost 2 years ago

Added

  • Added support for global hotkeys in PressKey keyword
  • Added offset arguments for locator element in DragDrop keyword
    • loc_left
    • loc_right
    • loc_above
    • loc_below
    • These are useful if you need to grab and start dragging near element
  • Added Shadow DOM support for DropDown keyword

Changed

  • Deprecation warning added to OpenBrowser when using IE
  • Updated Selenium to 4.6.0 and improved typing
  • Updated Pillow to 9.3.0
  • Minor change how ClickCheckbox works to better support Salesforce checkboxes
  • Suppressed some unnecessary warnings from webdriver (moved to DEBUG log level)

To update, run:

pip install -U QWeb
qweb - [2.0.5] - 2022-10-20

Published by tkoukkari almost 2 years ago

Minor bug fix release

Added

  • Exclude Robot Framwork 6.x in requirements for now

Fixed

  • Filtering out unnecessary tags (script etc.) in shadow dom text search
  • Fix for using attribute value as a locator in safari
    • This was failing in iOS Safari if found element had no attributes
qweb - [2.0.4] - 2022-09-22

Published by tkoukkari about 2 years ago

Added

  • Added support for index argument when using xpath
  • Added support for verifying text including single, double and mixed quotes
  • Added support for typing to textareas under shadow dom using attribute

Fixed

  • Fixed handling of line breaks when check=True (TypeText)

Changed

  • "Default folders" (images, files etc.) are now searched for from anywhere under ${EXECDIR} too.
qweb - [2.0.3] - 2022-08-08

Published by tkoukkari about 2 years ago

Added

  • Added shadow dom support for GetText with attribute value & tag
  • Added tests for VerifyElement keyword

Changed

  • Changed handling of (command line) arguments for Firefox
    • version 103 and above handle incorrect arguments differently than previous versions
  • Bumped DebugLibrary version for RF 5.x support
  • Changed generated screenshot file name handling
    • Generated screenshot file names should not be longer than accepted by OS
qweb - [2.0.2] - 2022-06-09

Published by tkoukkari over 2 years ago

Fixed

  • Fixed regression (unexpected timeouts on default settings) caused by latest (v15.5) Safari & Safaridriver
  • Fixed error on ClickItem when SearchMode is set to "None"
  • Fixed highlighting found element on VerifyElementText

Changed

  • Added typing and type checking (mypy) to pipeline
  • Changed BrowserStack capabilities to conform with new format + accept additional capabilities
  • Improved local development tasks (duties) to support running acceptance tests on different platforms
  • Removed unnecessary logging from timeout decorator
  • Improved pipeline to re-run failed cases automatically
qweb - [2.0.1] - 2022-04-25

Published by tkoukkari over 2 years ago

Fixed

  • Enhanced Safari support: Multiple fixes to Safari regarding handling frames and windows

Added

  • Added robot framework 5.0 support
  • LogScreenshot: Support for full page screenshots
  • Added support for different operators (equal/not equal/greater than/less than/contains) to VerifyAttribute
  • Added Safari specific solution for COMMAND key

Changed

  • GetWebelement, GetAttribute and VerifyAttribute now accept css selectors with element_type=css
  • Updated Pillow dependency to latest version
  • Added Safari to GitHub pipeline
  • Added documentation for PartialMatch configuration
qweb - [2.0.0] - 2022-03-24

Published by tkoukkari over 2 years ago

Changes:

  • Moved to Selenium 4. Selenium 3 is no longer supported
  • Ended support for Python 3.6
  • Added support for Python 3.10
  • Improved support for M1 Macs (should work directly via pip if you have the latest OS version)
  • Enhanced Shadow DOM support
  • Improved documentation for different configurations (SetConfig)
  • Added ability to change highlight color
  • All dependencies updated to later versions

Enhanced Shadow DOM support
There has been more and more cases where some (or all) elements are under shadow dom. These have been reachable via javascript only. However, it usually results hard-to-maintain test scripts like this:

GoTo                       chrome://settings/content/popups
${enable_popups_btn}=      Set Variable    document.querySelector("settings-ui").shadowRoot.querySelector("settings-main").shadowRoot.querySelector("settings-basic-page").shadowRoot.querySelector("div#basicPage").querySelector("[page-title='Privacy and security'] > settings-privacy-page").shadowRoot.querySelector("settings-animated-pages > settings-subpage > settings-category-default-radio-group").shadowRoot.querySelector("[id=radioSection] > settings-radio-group > settings-collapse-radio-button").shadowRoot.querySelector("[id=radioCollapse] > [id=button]")
ExecuteJavascript          ${enable_popups_btn}.click()

...which are prone to break if the DOM structure changes at all.

We have now added enhanced Shadow DOM support for all keywords that handle textual locators (*Text), inputs (*Input) or attribute value locators (*Item). At least for now we have this under a feature flag/setting, because old test cases might potentially suddenly find more elements than before.
As an example, the above test case can be re-written in a more clear way using the new feature:

SetConfig            ShadowDOM            True  # extends search to shadow dom elements
GoTo                 chrome://settings/content/popups
ClickText            Sites can send pop-ups 

More examples can be found for example in our tests here:
https://github.com/qentinelqi/qweb/blob/master/test/acceptance/shadow_dom.robot

Highlight color

There have been few cases where it would be useful to easily identify which of the duplicated elements QWeb finds. You can do this by changing the highlight color.

Example:

VerifyItem             text                anchor=2     # highlight element using default color (blue)
SetConfig              HighlightColor      orange
VerifyItem             text                anchor=Local Target in Shadow DOM 

image

Package Rankings
Top 10.92% on Pypi.org
Badges
Extracted from project README's
Tested with Slack
Related Projects