Merge pull request #561 from seleniumbase/translations-and-refactoring

Update Translations and some refactoring
This commit is contained in:
Michael Mintz 2020-05-02 22:36:56 -04:00 committed by GitHub
commit 90b7bea6b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 516 additions and 72 deletions

View File

@ -6,7 +6,7 @@ class MyTestClass(BaseCase):
def test_basic(self):
self.open('https://xkcd.com/1117/')
self.assert_element('img[alt="My Sky"]')
self.create_shepherd_tour()
self.create_tour(theme="dark")
self.add_tour_step("Welcome to XKCD!")
self.add_tour_step("This is the XKCD logo.", "#masthead img")
self.add_tour_step("Here's the daily webcomic.", "#comic img")

View File

@ -7,7 +7,8 @@ For backwards compatibility, older versions of method names have remained to kee
```python
self.open(url)
# Duplicates: self.open_url(url), self.get(url), self.visit(url)
# Duplicates: self.open_url(url), self.get(url)
# self.visit(url), self.goto(url), self.go_to(url)
self.click(selector, by=By.CSS_SELECTOR, timeout=None, delay=0)
@ -20,6 +21,7 @@ self.click_chain(selectors_list, by=By.CSS_SELECTOR, timeout=None, spacing=0)
self.update_text(selector, new_value, by=By.CSS_SELECTOR, timeout=None, retry=False)
# Duplicates: self.type(selector, text, by=By.CSS_SELECTOR, timeout=None, retry=False)
# self.input(selector, text, by=By.CSS_SELECTOR, timeout=None, retry=False)
# self.write(selector, text, by=By.CSS_SELECTOR, timeout=None, retry=False)
self.add_text(selector, text, by=By.CSS_SELECTOR, timeout=None)
# Duplicates: self.send_keys(selector, text, by=By.CSS_SELECTOR, timeout=None)

View File

@ -23,12 +23,11 @@ pytest-metadata==1.8.0
pytest-ordering==0.6
pytest-rerunfailures==8.0;python_version<"3.6"
pytest-rerunfailures==9.0;python_version>="3.6"
pytest-xdist==1.31.0
pytest-xdist==1.32.0
parameterized==0.7.4
soupsieve==1.9.5;python_version<"3.5"
soupsieve==2.0;python_version>="3.5"
beautifulsoup4==4.9.0
atomicwrites==1.3.0
cryptography==2.9.2
pyopenssl==19.1.0
pygments==2.5.2;python_version<"3.5"
@ -41,7 +40,6 @@ coverage==5.1
pyotp==2.3.0
boto==2.49.0
cffi==1.14.0
tqdm==4.45.0
flake8==3.7.9
pyflakes==2.1.1
certifi>=2020.4.5.1

View File

@ -670,6 +670,129 @@ def process_test_file(
seleniumbase_lines.append(command)
continue
# Handle self.input(SELECTOR, TEXT)
if not object_dict:
data = re.match(
r'''^(\s*)self\.input'''
r'''\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.input'''
r'''\(([\S\s]+),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
text = data.group(3)
comments = data.group(4)
command = '''%sself.input(%s, %s)%s''' % (
whitespace, selector, text, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.input(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.input(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
seleniumbase_lines.append(command)
continue
# Handle self.write(SELECTOR, TEXT)
if not object_dict:
data = re.match(
r'''^(\s*)self\.write'''
r'''\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.write'''
r'''\(([\S\s]+),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
text = data.group(3)
comments = data.group(4)
command = '''%sself.write(%s, %s)%s''' % (
whitespace, selector, text, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.write(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.write(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
seleniumbase_lines.append(command)
continue
# Handle self.add_text(SELECTOR, TEXT)
if not object_dict:
data = re.match(
r'''^(\s*)self\.add_text'''
r'''\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.add_text'''
r'''\(([\S\s]+),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
text = data.group(3)
comments = data.group(4)
command = '''%sself.add_text(%s, %s)%s''' % (
whitespace, selector, text, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.add_text(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.add_text(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
seleniumbase_lines.append(command)
continue
# Handle self.send_keys(SELECTOR, TEXT)
if not object_dict:
data = re.match(

View File

@ -23,13 +23,13 @@ import sys
from seleniumbase.common import obfuscate
from seleniumbase.common import unobfuscate
from seleniumbase.console_scripts import logo_helper
from seleniumbase.console_scripts import objectify
from seleniumbase.console_scripts import sb_mkdir
from seleniumbase.console_scripts import sb_install
from seleniumbase.utilities.selenium_grid import download_selenium_server
from seleniumbase.utilities.selenium_grid import grid_hub
from seleniumbase.utilities.selenium_grid import grid_node
from seleniumbase.utilities.selenium_ide import convert_ide
from seleniumbase.utilities.selenium_ide import objectify
def show_usage():

View File

@ -105,18 +105,6 @@ class BaseCase(unittest.TestCase):
self.wait_for_ready_state_complete()
self.__demo_mode_pause_if_active()
def open_url(self, url):
""" Same as open() - Original saved for backwards compatibility. """
self.open(url)
def get(self, url):
""" Same as open() - WebDriver uses this method name. """
self.open(url)
def visit(self, url):
""" Same as open() - Some JS frameworks use this method name. """
self.open(url)
def click(self, selector, by=By.CSS_SELECTOR, timeout=None, delay=0):
if not timeout:
timeout = settings.SMALL_TIMEOUT
@ -257,30 +245,6 @@ class BaseCase(unittest.TestCase):
if spacing > 0:
time.sleep(spacing)
def type(self, selector, text, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" The short version of update_text(), which clears existing text
and adds new text into the text field.
We want to keep the other version for backward compatibility. """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.update_text(selector, text, by=by, timeout=timeout, retry=retry)
def input(self, selector, text, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" Same as update_text(). """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.update_text(selector, text, by=by, timeout=timeout, retry=retry)
def update_text(self, selector, new_value, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" This method updates an element's text field with new text.
@ -413,16 +377,6 @@ class BaseCase(unittest.TestCase):
elif self.slow_mode:
self.__slow_mode_pause_if_active()
def send_keys(self, selector, text, by=By.CSS_SELECTOR, timeout=None):
""" Same as add_text() """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.add_text(selector, text, by=by, timeout=timeout)
def submit(self, selector, by=By.CSS_SELECTOR):
""" Alternative to self.driver.find_element_by_*(SELECTOR).submit() """
if page_utils.is_xpath_selector(selector):
@ -2858,6 +2812,76 @@ class BaseCase(unittest.TestCase):
############
# Duplicates (Avoids name confusion when migrating from other frameworks.)
def open_url(self, url):
""" Same as open() - Original saved for backwards compatibility. """
self.open(url)
def get(self, url):
""" Same as open() - WebDriver uses this method name. """
self.open(url)
def visit(self, url):
""" Same as open() - Some JS frameworks use this method name. """
self.open(url)
def goto(self, url):
""" Same as open() - Some JS frameworks use this method name. """
self.open(url)
def go_to(self, url):
""" Same as open() - Some test frameworks use this method name. """
self.open(url)
def type(self, selector, text, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" Same as update_text(). """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.update_text(selector, text, by=by, timeout=timeout, retry=retry)
def input(self, selector, text, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" Same as update_text(). """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.update_text(selector, text, by=by, timeout=timeout, retry=retry)
def write(self, selector, text, by=By.CSS_SELECTOR,
timeout=None, retry=False):
""" Same as update_text(). """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.update_text(selector, text, by=by, timeout=timeout, retry=retry)
def send_keys(self, selector, text, by=By.CSS_SELECTOR, timeout=None):
""" Same as add_text() """
if not timeout:
timeout = settings.LARGE_TIMEOUT
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
timeout = self.__get_new_timeout(timeout)
if page_utils.is_xpath_selector(selector):
by = By.XPATH
self.add_text(selector, text, by=by, timeout=timeout)
def start_tour(self, name=None, interval=0):
self.play_tour(name=name, interval=interval)
############
def add_css_link(self, css_link):
js_utils.add_css_link(self.driver, css_link)
@ -3288,7 +3312,7 @@ class BaseCase(unittest.TestCase):
def export_tour(self, name=None, filename="my_tour.js", url=None):
""" Exports a tour as a JS file.
You can call self.export_tour() anywhere where you would
normally use self.play_tour() to play a tour.
normally use self.play_tour() to play a website tour.
It will include necessary resources as well, such as jQuery.
You'll be able to copy the tour directly into the Console of
any web browser to play the tour outside of SeleniumBase runs.
@ -3296,7 +3320,9 @@ class BaseCase(unittest.TestCase):
name - If creating multiple tours at the same time,
use this to select the tour you wish to add steps to.
filename - The name of the JavaScript file that you wish to
save the tour to. """
save the tour to.
url - The URL where the tour starts. If not specified, the URL
of the current page will be used. """
if not url:
url = self.get_current_url()
tour_helper.export_tour(

View File

@ -235,3 +235,36 @@ class 硒测试用例(BaseCase): # noqa
def 按值选择选项(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def 创建游览(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def 创建SHEPHERD游览(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def 创建BOOTSTRAP游览(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def 创建HOPSCOTCH游览(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def 创建INTROJS游览(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def 添加游览步骤(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def 播放游览(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def 导出游览(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class Testgeval(BaseCase):
def optie_selecteren_per_waarde(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def maak_een_tour(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def maak_een_shepherd_tour(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def maak_een_bootstrap_tour(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def maak_een_hopscotch_tour(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def maak_een_introjs_tour(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def toevoegen_tour_stap(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def speel_de_tour(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def de_tour_exporteren(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class CasDeBase(BaseCase):
def sélectionner_option_par_valeur(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def créer_une_visite(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def créer_une_visite_shepherd(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def créer_une_visite_bootstrap(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def créer_une_visite_hopscotch(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def créer_une_visite_introjs(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def ajouter_une_étape_à_la_visite(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def jouer_la_visite(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def exporter_la_visite(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class CasoDiProva(BaseCase):
def selezionare_opzione_per_valore(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def creare_un_tour(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def creare_un_tour_shepherd(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def creare_un_tour_bootstrap(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def creare_un_tour_hopscotch(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def creare_un_tour_introjs(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def aggiungere_un_passo_al_tour(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def riprodurre_il_tour(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def esportare_il_tour(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class セレニウムテストケース(BaseCase): # noqa
def 値でオプションを選択(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def ツアーを作成する(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def SHEPHERDツアーを作成する(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def BOOTSTRAPツアーを作成する(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def HOPSCOTCHツアーを作成する(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def INTROJSツアーを作成する(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def ツアーステップを追加する(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def ツアーを再生する(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def ツアーをエクスポートする(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class 셀레늄_테스트_케이스(BaseCase): # noqa
def 값별로_옵션_선택(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def 가이드_투어_만들기(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def 가이드_SHEPHERD_투어_만들기(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def 가이드_BOOTSTRAP_투어_만들기(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def 가이드_HOPSCOTCH_투어_만들기(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def 가이드_INTROJS_투어_만들기(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def 둘러보기_단계_추가(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def 가이드_투어를하다(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def 가이드_투어_내보내기(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class CasoDeTeste(BaseCase):
def selecionar_opção_por_valor(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def criar_um_tour(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def criar_um_tour_shepherd(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def criar_um_tour_bootstrap(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def criar_um_tour_hopscotch(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def criar_um_tour_introjs(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def adicionar_passo_para_o_tour(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def jogar_o_tour(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def exportar_o_tour(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class ТестНаСелен(BaseCase): # noqa
def выбрать_опцию_по_значению(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def сделать_тур(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def сделать_SHEPHERD_тур(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def сделать_BOOTSTRAP_тур(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def сделать_HOPSCOTCH_тур(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def сделать_INTROJS_тур(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def добавить_шаг_в_тур(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def играть_тур(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def экспортировать_тур(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -235,3 +235,36 @@ class CasoDePrueba(BaseCase):
def seleccionar_opción_por_valor(self, *args, **kwargs):
# select_option_by_value(dropdown_selector, option)
return self.select_option_by_value(*args, **kwargs)
def crear_una_gira(self, *args, **kwargs):
# create_tour(name=None, theme=None)
return self.create_tour(*args, **kwargs)
def crear_una_gira_shepherd(self, *args, **kwargs):
# create_shepherd_tour(name=None, theme=None)
return self.create_shepherd_tour(*args, **kwargs)
def crear_una_gira_bootstrap(self, *args, **kwargs):
# create_bootstrap_tour(name=None, theme=None)
return self.create_bootstrap_tour(*args, **kwargs)
def crear_una_gira_hopscotch(self, *args, **kwargs):
# create_hopscotch_tour(name=None, theme=None)
return self.create_hopscotch_tour(*args, **kwargs)
def crear_una_gira_introjs(self, *args, **kwargs):
# create_introjs_tour(name=None, theme=None)
return self.create_introjs_tour(*args, **kwargs)
def agregar_paso_a_la_gira(self, *args, **kwargs):
# add_tour_step(message, selector=None, name=None,
# title=None, theme=None, alignment=None)
return self.add_tour_step(*args, **kwargs)
def reproducir_la_gira(self, *args, **kwargs):
# play_tour(name=None)
return self.play_tour(*args, **kwargs)
def exportar_la_gira(self, *args, **kwargs):
# export_tour(name=None, filename="my_tour.js", url=None)
return self.export_tour(*args, **kwargs)

View File

@ -45,40 +45,40 @@ if sys.argv[-1] == 'publish':
setup(
name='seleniumbase',
version='1.37.12',
version='1.37.13',
description='Fast, Easy, and Reliable Browser Automation & Testing.',
long_description=long_description,
long_description_content_type='text/markdown',
url='https://github.com/seleniumbase/SeleniumBase',
platforms=["Windows", "Linux", "Unix", "Mac OS-X"],
platforms=["Windows", "Linux", "Mac OS-X"],
author='Michael Mintz',
author_email='mdmintz@gmail.com',
maintainer='Michael Mintz',
license="MIT",
classifiers=[
"License :: OSI Approved :: MIT License",
"Development Status :: 5 - Production/Stable",
"Topic :: Internet",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
"Topic :: Software Development :: Quality Assurance",
"Topic :: Software Development :: Testing",
"Topic :: Software Development :: Testing :: Acceptance",
"Topic :: Software Development :: Testing :: Traffic Generation",
"Topic :: Utilities",
"Framework :: Pytest",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: Unix",
"Operating System :: MacOS",
"Framework :: Pytest",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Topic :: Internet",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
"Topic :: Software Development :: Quality Assurance",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Testing",
"Topic :: Software Development :: Testing :: Acceptance",
"Topic :: Software Development :: Testing :: Traffic Generation",
"Topic :: Utilities",
],
install_requires=[
'pip>=20.1',
@ -105,12 +105,11 @@ setup(
'pytest-ordering==0.6',
'pytest-rerunfailures==8.0;python_version<"3.6"',
'pytest-rerunfailures==9.0;python_version>="3.6"',
'pytest-xdist==1.31.0',
'pytest-xdist==1.32.0',
'parameterized==0.7.4',
'soupsieve==1.9.5;python_version<"3.5"',
'soupsieve==2.0;python_version>="3.5"',
'beautifulsoup4==4.9.0',
'atomicwrites==1.3.0',
'cryptography==2.9.2',
'pyopenssl==19.1.0',
'pygments==2.5.2;python_version<"3.5"',
@ -123,7 +122,6 @@ setup(
'pyotp==2.3.0',
'boto==2.49.0',
'cffi==1.14.0',
'tqdm==4.45.0',
'flake8==3.7.9',
'pyflakes==2.1.1',
'certifi>=2020.4.5.1',