diff --git a/help_docs/ReadMe.md b/help_docs/ReadMe.md index 7d806fb4bd3..1ba4126232d 100755 --- a/help_docs/ReadMe.md +++ b/help_docs/ReadMe.md @@ -1,3 +1,15 @@ -## Additional Help Documents +### ![http://seleniumbase.com](https://cdn2.hubspot.net/hubfs/100006/images/super_logo_tiny.png "SeleniumBase") SeleniumBase Help Documents: -This folder contains additional documents to help guide you with requirements installation, setup, and more. +> **Table of Contents / Navigation:** +> - [**SeleniumBase Features List**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md) +> - [**How SeleniumBase Works**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/how_it_works.md) +> - [**Python & Webdriver Installation**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/before_installation.md) +> - [**Detailed Requirements Setup**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/requirements_installation.md) +> - [**Python Virtual Env Tutorial**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/virtualenv_instructions.md) +> - [**Verify Webdriver Installation**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/verify_webdriver.md) +> - [**The Command Line Tutorial**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/command_line.md) +> - [**SeleniumBase Method Summary**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md) +> - [**MySQL Installation Overview**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mysql_installation.md) +> - [**Safari Driver Detailed Info**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/using_safari_driver.md) +> - [**Seeing Hidden Files on a Mac**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/hidden_files_info.md) +> - [**SeleniumBase Case Studies**](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/happy_customers.md) diff --git a/help_docs/before_installation.md b/help_docs/before_installation.md index 5b2a15cd694..323e74442e0 100755 --- a/help_docs/before_installation.md +++ b/help_docs/before_installation.md @@ -1,3 +1,5 @@ +## Before installing SeleniumBase, you need: + #### **Step 0a:** Setup your [![Python version](https://img.shields.io/badge/python-2.7,_3.*-22AADD.svg "Python version")](https://docs.python.org/2/) Python/pip environment: * To install ``python``, ``pip``, ``git``, and either ``virtualenv`` or ``virtualenvwrapper``, **[follow these instructions](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/requirements_installation.md)**. diff --git a/help_docs/hidden_files_info.md b/help_docs/hidden_files_info.md index dd2d35be1cf..9f48e46a583 100755 --- a/help_docs/hidden_files_info.md +++ b/help_docs/hidden_files_info.md @@ -4,3 +4,5 @@ Depending on your Mac settings, some files may be hidden from view in your Finde ```bash defaults write com.apple.finder AppleShowAllFiles -bool true ``` + +More info on that **[here](https://www.defaults-write.com/show-hidden-files-in-os-x-finder/)**. diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index defd45ff039..ed0bbd0f3c5 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -264,6 +264,8 @@ def get_text(self, selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT): if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH self.wait_for_ready_state_complete() time.sleep(0.01) element = page_actions.wait_for_element_visible( @@ -282,6 +284,8 @@ def get_attribute(self, selector, attribute, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT): if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH self.wait_for_ready_state_complete() time.sleep(0.01) element = page_actions.wait_for_element_present( @@ -332,6 +336,8 @@ def add_text(self, selector, new_value, by=By.CSS_SELECTOR, Similar to update_text(), but won't clear the text field first. """ if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH element = self.wait_for_element_visible( selector, by=by, timeout=timeout) self._demo_mode_highlight_if_active(selector, by) @@ -371,6 +377,8 @@ def send_keys(self, selector, new_value, by=By.CSS_SELECTOR, """ Same as add_text() -> more reliable, but less name confusion. """ if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH self.add_text(selector, new_value, by=by, timeout=timeout) def update_text_value(self, selector, new_value, by=By.CSS_SELECTOR, @@ -385,6 +393,8 @@ def update_text_value(self, selector, new_value, by=By.CSS_SELECTOR, """ if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH element = self.wait_for_element_visible( selector, by=by, timeout=timeout) self._demo_mode_highlight_if_active(selector, by) @@ -441,6 +451,8 @@ def update_text(self, selector, new_value, by=By.CSS_SELECTOR, We want to keep the old version for backward compatibility. """ if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT: timeout = self._get_new_timeout(timeout) + if page_utils.is_xpath_selector(selector): + by = By.XPATH self.update_text_value(selector, new_value, by=by, timeout=timeout, retry=retry) diff --git a/server_setup.py b/server_setup.py index d0d52f4cfa1..b856d31d96f 100755 --- a/server_setup.py +++ b/server_setup.py @@ -8,9 +8,9 @@ setup( name='seleniumbase', - version='1.4.11', - description='A framework for building test automation - seleniumbase.com', - long_description='A framework for building browser-based test automation', + version='1.4.12', + description='Web Automation & Testing Framework - http://seleniumbase.com', + long_description='Web Automation and Testing Framework - seleniumbase.com', platforms='Mac * Windows * Linux * Docker', url='http://seleniumbase.com', author='Michael Mintz', diff --git a/setup.py b/setup.py index 39cb6171ded..f8d0853bfcf 100755 --- a/setup.py +++ b/setup.py @@ -1,5 +1,6 @@ """ The setup package to install SeleniumBase dependencies and plugins +(Uses the newer Selenium 3.6.0) """ import os @@ -7,9 +8,9 @@ setup( name='seleniumbase', - version='1.4.11', - description='A framework for building test automation - seleniumbase.com', - long_description='A framework for building browser-based test automation', + version='1.4.12', + description='Web Automation & Testing Framework - http://seleniumbase.com', + long_description='Web Automation and Testing Framework - seleniumbase.com', platforms='Mac * Windows * Linux * Docker', url='http://seleniumbase.com', author='Michael Mintz',