From be1723a0396ce6a33b494af691ac3f7ab27ac66e Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:31:45 -0400 Subject: [PATCH 01/10] Move "selenium_grid" to "seleniumbase/utilities" --- integrations/selenium_grid/ReadMe.md | 30 +------------------ .../utilities/selenium_grid/ReadMe.md | 29 ++++++++++++++++++ .../utilities}/selenium_grid/__init__.py | 0 .../selenium_grid/download_selenium_server.py | 0 .../utilities}/selenium_grid/font_color | 0 .../utilities}/selenium_grid/grid-hub | 0 .../utilities}/selenium_grid/grid-node | 0 .../utilities}/selenium_grid/grid_hub.py | 2 +- .../utilities}/selenium_grid/grid_node.py | 2 +- .../selenium_grid/register-grid-node.bat | 0 .../selenium_grid/register-grid-node.sh | 0 .../selenium_grid/start-grid-hub.bat | 0 .../selenium_grid/start-grid-hub.sh | 0 13 files changed, 32 insertions(+), 31 deletions(-) create mode 100755 seleniumbase/utilities/selenium_grid/ReadMe.md rename {integrations => seleniumbase/utilities}/selenium_grid/__init__.py (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/download_selenium_server.py (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/font_color (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/grid-hub (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/grid-node (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/grid_hub.py (97%) rename {integrations => seleniumbase/utilities}/selenium_grid/grid_node.py (98%) rename {integrations => seleniumbase/utilities}/selenium_grid/register-grid-node.bat (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/register-grid-node.sh (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/start-grid-hub.bat (100%) rename {integrations => seleniumbase/utilities}/selenium_grid/start-grid-hub.sh (100%) diff --git a/integrations/selenium_grid/ReadMe.md b/integrations/selenium_grid/ReadMe.md index 5c2a66e156c..b412e43b141 100755 --- a/integrations/selenium_grid/ReadMe.md +++ b/integrations/selenium_grid/ReadMe.md @@ -1,29 +1 @@ -## The Selenium Grid Hub - -The Selenium Grid Hub lets you distribute tests to run in parallel across multiple node machines. Each node machine can then run its own allocation of tests. This allows you to run a large suite of tests very quickly. - -### Running the Selenium Grid Hub - -The following commands will work once you've installed seleniumbase, which comes with the seleniumbase console scripts interface. - -Grid Hub server controls: -```bash -seleniumbase grid-hub {start|stop|restart} [OPTIONS] -``` -Options: -* ``-v``, ``--verbose`` (Increases verbosity of logging output.) - -Grid node server controlls: -```bash -seleniumbase grid-node {start|stop|restart} --hub=[HUB_IP] [OPTIONS] -``` -Options: -* ``-v``, ``--verbose`` (Increases verbosity of logging output.) -* ``--hub=[HUB_IP]`` (Specifies the Grid Hub to connect to. Default: "127.0.0.1".) - -When the Grid Hub Console is up and running, you'll be able to find it here: [http://127.0.0.1:4444/grid/console](http://127.0.0.1:4444/grid/console) - - -#### More info about the Selenium Grid Hub can be found here: -* [https://github.com/SeleniumHQ/selenium/wiki/Grid2](https://github.com/SeleniumHQ/selenium/wiki/Grid2) -* [https://github.com/SeleniumHQ/selenium/wiki](https://github.com/SeleniumHQ/selenium/wiki/Grid2) +### The ReadMe for the Selenium Grid Hub Launcher has been moved to: [seleniumbase/utilities/selenium_grid/ReadMe.md](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_grid/ReadMe.md) and all related code has been moved to [seleniumbase/utilities/selenium_grid](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_grid) diff --git a/seleniumbase/utilities/selenium_grid/ReadMe.md b/seleniumbase/utilities/selenium_grid/ReadMe.md new file mode 100755 index 00000000000..0f2bd868817 --- /dev/null +++ b/seleniumbase/utilities/selenium_grid/ReadMe.md @@ -0,0 +1,29 @@ +## The Selenium Grid Hub + +The Selenium Grid Hub lets you distribute tests to run in parallel across multiple node machines. Each node machine can then run its own allocation of tests. This allows you to run a large suite of tests very quickly. + +### Running the Selenium Grid Hub + +The following commands will work once you've installed seleniumbase, which comes with the seleniumbase console scripts interface. + +Grid Hub server controls: +``` +seleniumbase grid-hub {start|stop|restart} [OPTIONS] +``` +Options: +* ``-v``, ``--verbose`` (Increases verbosity of logging output.) + +Grid node server controlls: +``` +seleniumbase grid-node {start|stop|restart} --hub=[HUB_IP] [OPTIONS] +``` +Options: +* ``-v``, ``--verbose`` (Increases verbosity of logging output.) +* ``--hub=[HUB_IP]`` (Specifies the Grid Hub to connect to. Default: "127.0.0.1".) + +When the Grid Hub Console is up and running, you'll be able to find it here: [http://127.0.0.1:4444/grid/console](http://127.0.0.1:4444/grid/console) + + +#### More info about the Selenium Grid Hub can be found here: +* [https://github.com/SeleniumHQ/selenium/wiki/Grid2](https://github.com/SeleniumHQ/selenium/wiki/Grid2) +* [https://github.com/SeleniumHQ/selenium/wiki](https://github.com/SeleniumHQ/selenium/wiki/Grid2) diff --git a/integrations/selenium_grid/__init__.py b/seleniumbase/utilities/selenium_grid/__init__.py similarity index 100% rename from integrations/selenium_grid/__init__.py rename to seleniumbase/utilities/selenium_grid/__init__.py diff --git a/integrations/selenium_grid/download_selenium_server.py b/seleniumbase/utilities/selenium_grid/download_selenium_server.py similarity index 100% rename from integrations/selenium_grid/download_selenium_server.py rename to seleniumbase/utilities/selenium_grid/download_selenium_server.py diff --git a/integrations/selenium_grid/font_color b/seleniumbase/utilities/selenium_grid/font_color similarity index 100% rename from integrations/selenium_grid/font_color rename to seleniumbase/utilities/selenium_grid/font_color diff --git a/integrations/selenium_grid/grid-hub b/seleniumbase/utilities/selenium_grid/grid-hub similarity index 100% rename from integrations/selenium_grid/grid-hub rename to seleniumbase/utilities/selenium_grid/grid-hub diff --git a/integrations/selenium_grid/grid-node b/seleniumbase/utilities/selenium_grid/grid-node similarity index 100% rename from integrations/selenium_grid/grid-node rename to seleniumbase/utilities/selenium_grid/grid-node diff --git a/integrations/selenium_grid/grid_hub.py b/seleniumbase/utilities/selenium_grid/grid_hub.py similarity index 97% rename from integrations/selenium_grid/grid_hub.py rename to seleniumbase/utilities/selenium_grid/grid_hub.py index bfe44fdcfee..ad1ac593d52 100755 --- a/integrations/selenium_grid/grid_hub.py +++ b/seleniumbase/utilities/selenium_grid/grid_hub.py @@ -49,7 +49,7 @@ def main(): file.writelines("\r\n".join(data)) file.close() - from integrations.selenium_grid import download_selenium_server + from seleniumbase.utilities.selenium_grid import download_selenium_server download_selenium_server.main() # Nothing happens if already exists if "linux" in sys.platform or "darwin" in sys.platform: diff --git a/integrations/selenium_grid/grid_node.py b/seleniumbase/utilities/selenium_grid/grid_node.py similarity index 98% rename from integrations/selenium_grid/grid_node.py rename to seleniumbase/utilities/selenium_grid/grid_node.py index f2ad2f71c72..01521dc4659 100755 --- a/integrations/selenium_grid/grid_node.py +++ b/seleniumbase/utilities/selenium_grid/grid_node.py @@ -60,7 +60,7 @@ def main(): file.writelines("\r\n".join(data)) file.close() - from integrations.selenium_grid import download_selenium_server + from seleniumbase.utilities.selenium_grid import download_selenium_server download_selenium_server.main() # Nothing happens if already exists if "linux" in sys.platform or "darwin" in sys.platform: diff --git a/integrations/selenium_grid/register-grid-node.bat b/seleniumbase/utilities/selenium_grid/register-grid-node.bat similarity index 100% rename from integrations/selenium_grid/register-grid-node.bat rename to seleniumbase/utilities/selenium_grid/register-grid-node.bat diff --git a/integrations/selenium_grid/register-grid-node.sh b/seleniumbase/utilities/selenium_grid/register-grid-node.sh similarity index 100% rename from integrations/selenium_grid/register-grid-node.sh rename to seleniumbase/utilities/selenium_grid/register-grid-node.sh diff --git a/integrations/selenium_grid/start-grid-hub.bat b/seleniumbase/utilities/selenium_grid/start-grid-hub.bat similarity index 100% rename from integrations/selenium_grid/start-grid-hub.bat rename to seleniumbase/utilities/selenium_grid/start-grid-hub.bat diff --git a/integrations/selenium_grid/start-grid-hub.sh b/seleniumbase/utilities/selenium_grid/start-grid-hub.sh similarity index 100% rename from integrations/selenium_grid/start-grid-hub.sh rename to seleniumbase/utilities/selenium_grid/start-grid-hub.sh From d139aa6d8673c170e55ca32629824be85595def2 Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:36:02 -0400 Subject: [PATCH 02/10] Move "selenium_ide" conversion tool to "seleniumbase/utilities" --- integrations/katalon/ReadMe.md | 2 +- integrations/selenium_ide/ReadMe.md | 30 +------------------ seleniumbase/utilities/selenium_ide/ReadMe.md | 19 ++++++++++++ .../utilities}/selenium_ide/__init__.py | 0 .../utilities}/selenium_ide/convert_ide.py | 0 5 files changed, 21 insertions(+), 30 deletions(-) create mode 100755 seleniumbase/utilities/selenium_ide/ReadMe.md rename {integrations => seleniumbase/utilities}/selenium_ide/__init__.py (100%) rename {integrations => seleniumbase/utilities}/selenium_ide/convert_ide.py (100%) diff --git a/integrations/katalon/ReadMe.md b/integrations/katalon/ReadMe.md index 6a3019b3a4b..ca4b51d487b 100755 --- a/integrations/katalon/ReadMe.md +++ b/integrations/katalon/ReadMe.md @@ -1 +1 @@ -## This page has been moved to: [../selenium_ide/ReadMe.md](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/selenium_ide/ReadMe.md) +### The ReadMe for the Katalon / Selenium IDE conversion tool has been moved to: [seleniumbase/utilities/selenium_ide/ReadMe.md](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_ide/ReadMe.md) and all related code has been moved to [seleniumbase/utilities/selenium_ide](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_ide) diff --git a/integrations/selenium_ide/ReadMe.md b/integrations/selenium_ide/ReadMe.md index d212e9ce1f1..ca4b51d487b 100755 --- a/integrations/selenium_ide/ReadMe.md +++ b/integrations/selenium_ide/ReadMe.md @@ -1,29 +1 @@ -## Converting Katalon/Selenium IDE recordings into SeleniumBase test scripts - -[Katelon Recorder / Selenium IDE](https://www.katalon.com/resources-center/blog/katalon-automation-recorder/) (the successor to the [old Selenium IDE](http://docs.seleniumhq.org/projects/ide/)) is a tool that allows you to record and playback actions performed inside a web browser. It's available as a [downloadable Chrome extension](https://chrome.google.com/webstore/detail/katalon-recorder-selenium/ljdobmomdgdljniojadhoplhkpialdid) and a [downloadable Firefox extension](https://addons.mozilla.org/en-US/firefox/addon/katalon-automation-record/). Katelon Recorder comes with an option to export recordings as various WebDriver test scripts, one of which is ``Python 2 (WebDriver + unittest)``. Unfortunately, these natively-exported scripts can be very messy and don't always run reliably. The purpose of this converter is to clean up and improve the scripts so that they can be used in production-level environments. - -#### Step 1: Make a recording with Katelon Recorder - -![](https://cdn2.hubspot.net/hubfs/100006/images/katalon_recorder_2.png "Katelon Recorder example") - -#### Step 2: Export your recording as a Python 2 Webdriver script - -* ``{} Export`` => ``Python 2 (WebDriver + unittest)`` => ``Save As File`` - -#### Step 3: Drop your exported file into the ``selenium_ide`` folder - -* Just copy & paste! - -(The full path of the folder is ``SeleniumBase/integrations/selenium_ide``) - -#### Step 4: Run ``convert_ide.py`` on the exported Python script - -```bash -python convert_ide.py [MY_TEST.py] -``` - -You should see a [MY_TEST_SB.py] file appear in the folder. (``_SB`` is added to the file name so that the original file stays intact in case you still need it.) - -#### Step 5: Enjoy your new clean & reliable SeleniumBase test script - -* You can now copy your new SeleniumBase test script into your test suite. It's ready to be run! +### The ReadMe for the Katalon / Selenium IDE conversion tool has been moved to: [seleniumbase/utilities/selenium_ide/ReadMe.md](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_ide/ReadMe.md) and all related code has been moved to [seleniumbase/utilities/selenium_ide](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_ide) diff --git a/seleniumbase/utilities/selenium_ide/ReadMe.md b/seleniumbase/utilities/selenium_ide/ReadMe.md new file mode 100755 index 00000000000..3852dfc9dc5 --- /dev/null +++ b/seleniumbase/utilities/selenium_ide/ReadMe.md @@ -0,0 +1,19 @@ +## Converting Katalon/Selenium IDE recordings into SeleniumBase test scripts + +[Katelon Recorder / Selenium IDE](https://www.katalon.com/resources-center/blog/katalon-automation-recorder/) (the successor to the [old Selenium IDE](http://docs.seleniumhq.org/projects/ide/)) is a tool that allows you to record and playback actions performed inside a web browser. It's available as a [downloadable Chrome extension](https://chrome.google.com/webstore/detail/katalon-recorder-selenium/ljdobmomdgdljniojadhoplhkpialdid) and a [downloadable Firefox extension](https://addons.mozilla.org/en-US/firefox/addon/katalon-automation-record/). Katelon Recorder comes with an option to export recordings as various WebDriver test scripts, one of which is ``Python 2 (WebDriver + unittest)``. Unfortunately, these natively-exported scripts can be very messy and don't always run reliably. The purpose of this converter is to clean up and improve the scripts so that they can be used in production-level environments. + +#### Step 1: Make a recording with Katelon Recorder + +![](https://cdn2.hubspot.net/hubfs/100006/images/katalon_recorder_2.png "Katelon Recorder example") + +#### Step 2: Export your recording as a Python 2 Webdriver script + +* ``{} Export`` => ``Python 2 (WebDriver + unittest)`` => ``Save As File`` + +#### Step 3: Run ``seleniumbase convert`` on your exported Python file + +``` +seleniumbase convert [MY_TEST.py] +``` + +* You should see a [MY_TEST_SB.py] file appear in the folder. (``_SB`` is added to the file name so that the original file stays intact in case you still need it.) This new clean & reliable SeleniumBase test script is ready to be added into your test suite for running. diff --git a/integrations/selenium_ide/__init__.py b/seleniumbase/utilities/selenium_ide/__init__.py similarity index 100% rename from integrations/selenium_ide/__init__.py rename to seleniumbase/utilities/selenium_ide/__init__.py diff --git a/integrations/selenium_ide/convert_ide.py b/seleniumbase/utilities/selenium_ide/convert_ide.py similarity index 100% rename from integrations/selenium_ide/convert_ide.py rename to seleniumbase/utilities/selenium_ide/convert_ide.py From 1b92c33c26747e2bc8e0f39fa00d6a1ea5ac23eb Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:38:06 -0400 Subject: [PATCH 03/10] Add "__init__.py" to "seleniumbase/utilities" --- seleniumbase/utilities/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 seleniumbase/utilities/__init__.py diff --git a/seleniumbase/utilities/__init__.py b/seleniumbase/utilities/__init__.py new file mode 100755 index 00000000000..e69de29bb2d From 6f79b0857d6f1dec1a933dfbb3329f99c8bbfaae Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:39:43 -0400 Subject: [PATCH 04/10] Move "console_scripts" to "seleniumbase/console_scripts" --- .../console_scripts}/ReadMe.md | 0 .../console_scripts}/__init__.py | 0 .../console_scripts}/run.py | 10 +++++----- .../console_scripts}/sb_install.py | 2 +- .../console_scripts}/sb_mkdir.py | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) rename {console_scripts => seleniumbase/console_scripts}/ReadMe.md (100%) rename {console_scripts => seleniumbase/console_scripts}/__init__.py (100%) rename {console_scripts => seleniumbase/console_scripts}/run.py (96%) rename {console_scripts => seleniumbase/console_scripts}/sb_install.py (99%) rename {console_scripts => seleniumbase/console_scripts}/sb_mkdir.py (98%) diff --git a/console_scripts/ReadMe.md b/seleniumbase/console_scripts/ReadMe.md similarity index 100% rename from console_scripts/ReadMe.md rename to seleniumbase/console_scripts/ReadMe.md diff --git a/console_scripts/__init__.py b/seleniumbase/console_scripts/__init__.py similarity index 100% rename from console_scripts/__init__.py rename to seleniumbase/console_scripts/__init__.py diff --git a/console_scripts/run.py b/seleniumbase/console_scripts/run.py similarity index 96% rename from console_scripts/run.py rename to seleniumbase/console_scripts/run.py index 08832f0d962..926cac3b8c0 100644 --- a/console_scripts/run.py +++ b/seleniumbase/console_scripts/run.py @@ -13,11 +13,11 @@ """ import sys -from console_scripts import sb_mkdir -from console_scripts import sb_install -from integrations.selenium_grid import grid_hub -from integrations.selenium_grid import grid_node -from integrations.selenium_ide import convert_ide +from seleniumbase.console_scripts import sb_mkdir +from seleniumbase.console_scripts import sb_install +from seleniumbase.utilities.selenium_grid import grid_hub +from seleniumbase.utilities.selenium_grid import grid_node +from seleniumbase.utilities.selenium_ide import convert_ide def show_usage(): diff --git a/console_scripts/sb_install.py b/seleniumbase/console_scripts/sb_install.py similarity index 99% rename from console_scripts/sb_install.py rename to seleniumbase/console_scripts/sb_install.py index 043cc63e6ee..70b4a578f46 100755 --- a/console_scripts/sb_install.py +++ b/seleniumbase/console_scripts/sb_install.py @@ -20,7 +20,7 @@ import sys import tarfile import zipfile -import drivers # webdriver storage folder for SeleniumBase +from seleniumbase import drivers # webdriver storage folder for SeleniumBase if sys.version_info[0] == 2: from urllib import urlopen else: diff --git a/console_scripts/sb_mkdir.py b/seleniumbase/console_scripts/sb_mkdir.py similarity index 98% rename from console_scripts/sb_mkdir.py rename to seleniumbase/console_scripts/sb_mkdir.py index 6381cdbb130..63fd3bcee65 100755 --- a/console_scripts/sb_mkdir.py +++ b/seleniumbase/console_scripts/sb_mkdir.py @@ -260,6 +260,8 @@ def main(): file = codecs.open(file_path, "w+", "utf-8") file.writelines("\r\n".join(data)) file.close() + print('''\n* Directory "%s" was created with config files ''' + '''and sample tests! *\n''' % dir_name) if __name__ == "__main__": From ca815cb0c2b7273611f9d20b368d6f7798d6beb0 Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:42:15 -0400 Subject: [PATCH 05/10] Move "drivers" folder to "seleniumbase/drivers" --- {drivers => seleniumbase/drivers}/ReadMe.md | 13 +++++++++++-- {drivers => seleniumbase/drivers}/__init__.py | 0 2 files changed, 11 insertions(+), 2 deletions(-) rename {drivers => seleniumbase/drivers}/ReadMe.md (60%) rename {drivers => seleniumbase/drivers}/__init__.py (100%) diff --git a/drivers/ReadMe.md b/seleniumbase/drivers/ReadMe.md similarity index 60% rename from drivers/ReadMe.md rename to seleniumbase/drivers/ReadMe.md index b591ad2d8ba..07bd8e9b08f 100755 --- a/drivers/ReadMe.md +++ b/seleniumbase/drivers/ReadMe.md @@ -1,13 +1,22 @@ ### SeleniumBase web driver storage -* Usage: +#### Usage: -```bash +``` seleniumbase install chromedriver seleniumbase install geckodriver seleniumbase install edgedriver +seleniumbase install iedriver +seleniumbase install operadriver ``` After running the commands above, web drivers will get downloaded into this folder. SeleniumBase will then use those drivers during test runs if present. (The drivers don't come with SeleniumBase by default.) If the necessary driver is not found in this location while running tests, SeleniumBase will instead look for the driver on the System PATH. If the necessary driver is not on the System PATH either, you'll get errors. + +#### Notes: +* chromedriver allows you to run browser tests on Chrome +* geckodriver allows you to run browser tests on Firefox +* edgedriver allows you to run browser tests on MS Edge +* iedriver allows you to run browser tests on MS IE +* operadriver allows you to run browser tests on Opera diff --git a/drivers/__init__.py b/seleniumbase/drivers/__init__.py similarity index 100% rename from drivers/__init__.py rename to seleniumbase/drivers/__init__.py From 4f6bab5296a016a44ba6b6ce590530af4f924c3b Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:44:22 -0400 Subject: [PATCH 06/10] Use the new "drivers" folder to finding web drivers --- seleniumbase/core/browser_launcher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seleniumbase/core/browser_launcher.py b/seleniumbase/core/browser_launcher.py index 3b365b8c5c2..1cc9a850029 100755 --- a/seleniumbase/core/browser_launcher.py +++ b/seleniumbase/core/browser_launcher.py @@ -10,7 +10,7 @@ from seleniumbase.core import download_helper from seleniumbase.fixtures import constants from seleniumbase.fixtures import page_utils -import drivers # webdriver storage folder for SeleniumBase +from seleniumbase import drivers # webdriver storage folder for SeleniumBase DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__)) PLATFORM = sys.platform LOCAL_CHROMEDRIVER = None From 2c891203a81183b4944470bdfd482606ba2ce85f Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:54:10 -0400 Subject: [PATCH 07/10] Update the Manifest file --- MANIFEST.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 06cecc8c755..0f700bb2fd7 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -5,10 +5,10 @@ include .travis.yml include .gitignore include requirements.txt include seleniumbase/core/create_db_tables.sql -include integrations/selenium_grid/grid-hub -include integrations/selenium_grid/grid-node -include integrations/selenium_grid/font_color -include integrations/selenium_grid/start-grid-hub.bat -include integrations/selenium_grid/register-grid-node.bat -include integrations/selenium_grid/start-grid-hub.sh -include integrations/selenium_grid/register-grid-node.sh \ No newline at end of file +include seleniumbase/utilities/selenium_grid/grid-hub +include seleniumbase/utilities/selenium_grid/grid-node +include seleniumbase/utilities/selenium_grid/font_color +include seleniumbase/utilities/selenium_grid/start-grid-hub.bat +include seleniumbase/utilities/selenium_grid/register-grid-node.bat +include seleniumbase/utilities/selenium_grid/start-grid-hub.sh +include seleniumbase/utilities/selenium_grid/register-grid-node.sh \ No newline at end of file From b56516424bdcf3af67ada468b4e1650f678c42ac Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:58:59 -0400 Subject: [PATCH 08/10] Make all packages part of the seleniumbase package --- setup.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index 322c35123e0..045abc40c05 100755 --- a/setup.py +++ b/setup.py @@ -38,19 +38,19 @@ packages=['seleniumbase', 'seleniumbase.common', 'seleniumbase.config', + 'seleniumbase.console_scripts', 'seleniumbase.core', + 'seleniumbase.drivers', 'seleniumbase.fixtures', 'seleniumbase.masterqa', 'seleniumbase.plugins', - 'console_scripts', - 'drivers', - 'integrations', - 'integrations.selenium_grid', - 'integrations.selenium_ide', + 'seleniumbase.utilities', + 'seleniumbase.utilities.selenium_grid', + 'seleniumbase.utilities.selenium_ide', ], entry_points={ 'console_scripts': [ - 'seleniumbase = console_scripts.run:main', + 'seleniumbase = seleniumbase.console_scripts.run:main', ], 'nose.plugins': [ 'base_plugin = seleniumbase.plugins.base_plugin:Base', From 300008c9bd101ef8018a7276a7d6628e7ccf79b0 Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:59:17 -0400 Subject: [PATCH 09/10] Update the Docs --- README.md | 10 +++++----- help_docs/features_list.md | 4 ++-- help_docs/webdriver_installation.md | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4d75c5e5db5..44bac7545d9 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md) +[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md) [Version](https://pypi.python.org/pypi/seleniumbase) [GitHub Stars](https://github.com/seleniumbase/SeleniumBase/stargazers) [Build Status](https://travis-ci.org/seleniumbase/SeleniumBase) [Join the Gitter Chat](https://gitter.im/seleniumbase/SeleniumBase)
@@ -94,7 +94,7 @@ SeleniumBase methods automatically wait for page elements to finish loading befo SeleniumBase includes an automated/manual hybrid solution called **[MasterQA](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/masterqa/ReadMe.md)**, which speeds up manual testing by having automation perform all the web browser actions while the manual tester only validates what is seen. **Integrate with your favorite tools:**
-SeleniumBase is compatible with [Selenium Grid](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/selenium_grid), [MySQL](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/core/testcase_manager.py), [Docker](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/docker/ReadMe.md), [NodeJS](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/node_js), [Google Cloud](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/google_cloud/ReadMe.md), and [AWS](#amazon_section). +SeleniumBase is compatible with [Selenium Grid](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_grid), [MySQL](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/core/testcase_manager.py), [Docker](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/docker/ReadMe.md), [NodeJS](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/node_js), [Google Cloud](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/google_cloud/ReadMe.md), and [AWS](#amazon_section). **Comes with a business mindset:**
SeleniumBase makes it easy to automate tedious business tasks. (*To learn about businesses using SeleniumBase, [Click Here](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/happy_customers.md).*) @@ -106,7 +106,7 @@ SeleniumBase was originally built for [testing HubSpot's platform](https://produ ([Read more about SeleniumBase features here](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md)) - + ## Detailed Instructions: @@ -332,7 +332,7 @@ Here are some things you can do to setup a production environment for your testi * You can setup a [Jenkins](https://jenkins.io/) build server for running tests at regular intervals. Jenkins has many plugins available, such as [the Xvfb headless browser plugin](https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin) for running tests on a machine with no GUI. If you have Xvfb running in the background, you can add ``--headless`` to your run command in order to utilize it. For more info about the Xvfb plugin, [read this](http://qxf2.com/blog/xvfb-plugin-for-jenkins-selenium/). For a real-world Jenkins example of headless browser automation in action, check out [the SeleniumBase Google Cloud ReadMe](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/google_cloud/ReadMe.md). -* You can use [the Selenium Grid](https://github.com/SeleniumHQ/selenium/wiki/Grid2) to scale your testing by distributing tests on several machines with parallel execution. To do this, check out the SeleniumBase [selenium_grid folder](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/selenium_grid), which should have everything you need. The [Selenium Grid ReadMe](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/selenium_grid/ReadMe.md) will help you get started. +* You can use [the Selenium Grid](https://github.com/SeleniumHQ/selenium/wiki/Grid2) to scale your testing by distributing tests on several machines with parallel execution. To do this, check out the SeleniumBase [selenium_grid folder](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_grid), which should have everything you need. The [Selenium Grid ReadMe](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_grid/ReadMe.md) will help you get started. * If you're using the [SeleniumBase MySQL feature](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mysql_installation.md) to save results from tests running on a server machine, you can install [MySQL Workbench](http://dev.mysql.com/downloads/tools/workbench/) to help you read & write from your DB more easily. You'll also need to install the MySQL Python client. Depending on your system, you may need to install additional requirements for this (such as on Windows). See [Stackoverflow](https://stackoverflow.com/questions/43102442/whats-the-difference-between-mysqldb-mysqlclient-and-mysql-connector-python) for more info. @@ -696,4 +696,4 @@ Congratulations on getting started with SeleniumBase! [https://github.com/mdmintz](https://github.com/mdmintz)
-[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
+[](https://github.com/seleniumbase/SeleniumBase/blob/master/README.md)
diff --git a/help_docs/features_list.md b/help_docs/features_list.md index af24974362b..53cda49c12c 100755 --- a/help_docs/features_list.md +++ b/help_docs/features_list.md @@ -11,7 +11,7 @@ * Backwards-compatible with [WebDriver](http://www.seleniumhq.org/projects/webdriver/). (Use ``self.driver`` anywhere.) * Can run tests through a proxy server. (Use ``--proxy=IP_ADDRESS:PORT``) * Includes a hybrid-automation solution called **[MasterQA](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/masterqa/ReadMe.md)** to speed up manual testing. -* Includes integrations with [MySQL](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/core/testcase_manager.py), [Selenium Grid](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/selenium_grid), [Google Cloud](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/google_cloud/ReadMe.md), [Amazon S3](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/plugins/s3_logging_plugin.py), and [NodeJS](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/node_js). -* Includes a [tool to convert Selenium IDE recordings](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/selenium_ide) into clean & robust SeleniumBase scripts. +* Includes integrations with [MySQL](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/core/testcase_manager.py), [Selenium Grid](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_grid), [Google Cloud](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/google_cloud/ReadMe.md), [Amazon S3](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/plugins/s3_logging_plugin.py), and [NodeJS](https://github.com/seleniumbase/SeleniumBase/tree/master/integrations/node_js). +* Includes a [tool to convert Selenium IDE recordings](https://github.com/seleniumbase/SeleniumBase/tree/master/seleniumbase/utilities/selenium_ide) into clean & robust SeleniumBase scripts. * Written in Python, but can also make JavaScript calls using ``self.execute_script()``. * Includes useful Python decorators and password obfuscation methods. ([Learn more here](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/ReadMe.md)) diff --git a/help_docs/webdriver_installation.md b/help_docs/webdriver_installation.md index 2af0ff7e76d..8db83095197 100755 --- a/help_docs/webdriver_installation.md +++ b/help_docs/webdriver_installation.md @@ -11,7 +11,7 @@ seleniumbase install iedriver seleniumbase install operadriver ``` -If you plan on using the [Selenium Grid integration](https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/selenium_grid/ReadMe.md) (which allows for remote webdriver), you'll need to put the drivers on your System PATH. On a Mac and Linux, ``/usr/local/bin`` is a good PATH spot. On Windows, you may need to set the System PATH under Environment Variables to include the location where you placed the driver files. As a shortcut, you could place the driver files into your Python ``Scripts/`` folder in the location where you have Python installed, which should already be on your System PATH. +If you plan on using the [Selenium Grid integration](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_grid/ReadMe.md) (which allows for remote webdriver), you'll need to put the drivers on your System PATH. On a Mac and Linux, ``/usr/local/bin`` is a good PATH spot. On Windows, you may need to set the System PATH under Environment Variables to include the location where you placed the driver files. As a shortcut, you could place the driver files into your Python ``Scripts/`` folder in the location where you have Python installed, which should already be on your System PATH. Here's where you can go to manually install web drivers from the source: From 058701ecb5501ee8bb3fc96ac26d3dd9d9cd9c8c Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 14 Aug 2018 01:59:56 -0400 Subject: [PATCH 10/10] Version 1.14.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 045abc40c05..6f7f202f1ce 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name='seleniumbase', - version='1.13.7', + version='1.14.0', description='Web Automation & Testing Framework - http://seleniumbase.com', long_description='Web Automation and Testing Framework - seleniumbase.com', platforms='Mac * Windows * Linux * Docker',