summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-29 12:21:43 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-29 12:21:43 +0000
commit37100c47829ac395b23a9cdc824abb725dab774f (patch)
tree30e1fcd1deaff27601f28a6bcd426b0d954d2494
parenta307e13bd4f40871529aa5bcb0ae6afd108fbc0b (diff)
automatic import of python-selenium-smart-locator
-rw-r--r--.gitignore1
-rw-r--r--python-selenium-smart-locator.spec208
-rw-r--r--sources1
3 files changed, 210 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..41253f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/selenium-smart-locator-0.3.0.tar.gz
diff --git a/python-selenium-smart-locator.spec b/python-selenium-smart-locator.spec
new file mode 100644
index 0000000..34c3010
--- /dev/null
+++ b/python-selenium-smart-locator.spec
@@ -0,0 +1,208 @@
+%global _empty_manifest_terminate_build 0
+Name: python-selenium-smart-locator
+Version: 0.3.0
+Release: 1
+Summary: A (somewhat) smart locator class for Selenium.
+License: GPLv3
+URL: https://github.com/RedHatQE/selenium-smart-locator
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/35/fa/95775f7a5be070e6e2dfe6ae73f210a96359938d115194363fcbc0cf381a/selenium-smart-locator-0.3.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-selenium
+Requires: python3-pre-commit
+Requires: python3-pytest
+Requires: python3-pytest-cov
+
+%description
+|Build Status| |Coverage Status| |Code Health|
+Class encapsulating generating of the Selenium locators.
+It is designed to be simple and intuitive to use. It provides you various ways how to generate a
+Selenium-compatible locators. The class is usable in Selenium element queries.
+ loc = Locator(By.XPATH, '//foo/bar/baz') # Old selenium way of doing it
+ element = s.find_element(*loc) # Expand the tuple. That's how to use the class.
+This is a basic sample of how does it work. Now come the usage samples of simplified locators:
+ # When you use this simple format of CSS consisting of tag name, ids and classes, it gets
+ # detected automatically and the result is a CSS selector. IDs and classes are optional.
+ Locator('div#foo.bar.baz') # => Locator(by='css selector', locator='div#foo.bar.baz')
+ # When you specify a plain string and it does not get matched be the preceeding CSS detector
+ # it is assumed it is an XPath expression
+ Locator('//h1') # => Locator(by='xpath', locator='//h1')
+ # If you pass a Locator instance, it just goes straight through
+ Locator(Locator('//h1')) # => Locator(by='xpath', locator='//h1')
+ # If you have your own object, that implements __locator__(), then it can also be resolved
+ # by the class. The __locator__() must either return Locator instance or
+ # anything that Locator can process.
+ Locator(my_obj)
+ # You can leverage kwargs to say strategy=locator
+ Locator(xpath='//h1') # => Locator(by='xpath', locator='//h1')
+ Locator(css='#something') # => Locator(by='css selector', locator='#something')
+ Locator(by='xpath', locator='//h1') # => Locator(by='xpath', locator='//h1')
+ # For your comfort, you can pass a dictionary, like it was kwargs
+ Locator({'by': 'xpath', 'locator': '//h1'}) # => Locator(by='xpath', locator='//h1')
+ # You can also use Locator's classmethods, like this:
+ Locator.by_css('#foo') # => Locator(by='css selector', locator='#foo')
+ # Always in format Locator.by_<strategy_name>
+When you have locators, you can avoid using ``*`` by using convenience methods:
+ l = Locator('#foo')
+ browser = Firefox()
+ element = l.find_element(browser)
+ elements = l.find_elements(browser)
+As you can see, the number of ways how to specify the input parameters offer you a great freedom
+on how do you want to structure your locators. You can store them in YAML and you can use
+Locator to parse the entries. Or anything else.
+Available selector strategies:
+* class_name
+* css
+* id
+* link_text
+* name
+* partial_link_text
+* tag
+* xpath
+
+%package -n python3-selenium-smart-locator
+Summary: A (somewhat) smart locator class for Selenium.
+Provides: python-selenium-smart-locator
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-selenium-smart-locator
+|Build Status| |Coverage Status| |Code Health|
+Class encapsulating generating of the Selenium locators.
+It is designed to be simple and intuitive to use. It provides you various ways how to generate a
+Selenium-compatible locators. The class is usable in Selenium element queries.
+ loc = Locator(By.XPATH, '//foo/bar/baz') # Old selenium way of doing it
+ element = s.find_element(*loc) # Expand the tuple. That's how to use the class.
+This is a basic sample of how does it work. Now come the usage samples of simplified locators:
+ # When you use this simple format of CSS consisting of tag name, ids and classes, it gets
+ # detected automatically and the result is a CSS selector. IDs and classes are optional.
+ Locator('div#foo.bar.baz') # => Locator(by='css selector', locator='div#foo.bar.baz')
+ # When you specify a plain string and it does not get matched be the preceeding CSS detector
+ # it is assumed it is an XPath expression
+ Locator('//h1') # => Locator(by='xpath', locator='//h1')
+ # If you pass a Locator instance, it just goes straight through
+ Locator(Locator('//h1')) # => Locator(by='xpath', locator='//h1')
+ # If you have your own object, that implements __locator__(), then it can also be resolved
+ # by the class. The __locator__() must either return Locator instance or
+ # anything that Locator can process.
+ Locator(my_obj)
+ # You can leverage kwargs to say strategy=locator
+ Locator(xpath='//h1') # => Locator(by='xpath', locator='//h1')
+ Locator(css='#something') # => Locator(by='css selector', locator='#something')
+ Locator(by='xpath', locator='//h1') # => Locator(by='xpath', locator='//h1')
+ # For your comfort, you can pass a dictionary, like it was kwargs
+ Locator({'by': 'xpath', 'locator': '//h1'}) # => Locator(by='xpath', locator='//h1')
+ # You can also use Locator's classmethods, like this:
+ Locator.by_css('#foo') # => Locator(by='css selector', locator='#foo')
+ # Always in format Locator.by_<strategy_name>
+When you have locators, you can avoid using ``*`` by using convenience methods:
+ l = Locator('#foo')
+ browser = Firefox()
+ element = l.find_element(browser)
+ elements = l.find_elements(browser)
+As you can see, the number of ways how to specify the input parameters offer you a great freedom
+on how do you want to structure your locators. You can store them in YAML and you can use
+Locator to parse the entries. Or anything else.
+Available selector strategies:
+* class_name
+* css
+* id
+* link_text
+* name
+* partial_link_text
+* tag
+* xpath
+
+%package help
+Summary: Development documents and examples for selenium-smart-locator
+Provides: python3-selenium-smart-locator-doc
+%description help
+|Build Status| |Coverage Status| |Code Health|
+Class encapsulating generating of the Selenium locators.
+It is designed to be simple and intuitive to use. It provides you various ways how to generate a
+Selenium-compatible locators. The class is usable in Selenium element queries.
+ loc = Locator(By.XPATH, '//foo/bar/baz') # Old selenium way of doing it
+ element = s.find_element(*loc) # Expand the tuple. That's how to use the class.
+This is a basic sample of how does it work. Now come the usage samples of simplified locators:
+ # When you use this simple format of CSS consisting of tag name, ids and classes, it gets
+ # detected automatically and the result is a CSS selector. IDs and classes are optional.
+ Locator('div#foo.bar.baz') # => Locator(by='css selector', locator='div#foo.bar.baz')
+ # When you specify a plain string and it does not get matched be the preceeding CSS detector
+ # it is assumed it is an XPath expression
+ Locator('//h1') # => Locator(by='xpath', locator='//h1')
+ # If you pass a Locator instance, it just goes straight through
+ Locator(Locator('//h1')) # => Locator(by='xpath', locator='//h1')
+ # If you have your own object, that implements __locator__(), then it can also be resolved
+ # by the class. The __locator__() must either return Locator instance or
+ # anything that Locator can process.
+ Locator(my_obj)
+ # You can leverage kwargs to say strategy=locator
+ Locator(xpath='//h1') # => Locator(by='xpath', locator='//h1')
+ Locator(css='#something') # => Locator(by='css selector', locator='#something')
+ Locator(by='xpath', locator='//h1') # => Locator(by='xpath', locator='//h1')
+ # For your comfort, you can pass a dictionary, like it was kwargs
+ Locator({'by': 'xpath', 'locator': '//h1'}) # => Locator(by='xpath', locator='//h1')
+ # You can also use Locator's classmethods, like this:
+ Locator.by_css('#foo') # => Locator(by='css selector', locator='#foo')
+ # Always in format Locator.by_<strategy_name>
+When you have locators, you can avoid using ``*`` by using convenience methods:
+ l = Locator('#foo')
+ browser = Firefox()
+ element = l.find_element(browser)
+ elements = l.find_elements(browser)
+As you can see, the number of ways how to specify the input parameters offer you a great freedom
+on how do you want to structure your locators. You can store them in YAML and you can use
+Locator to parse the entries. Or anything else.
+Available selector strategies:
+* class_name
+* css
+* id
+* link_text
+* name
+* partial_link_text
+* tag
+* xpath
+
+%prep
+%autosetup -n selenium-smart-locator-0.3.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-selenium-smart-locator -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a39897b
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+79484f2d2fc1a419ced7de8b037ccdab selenium-smart-locator-0.3.0.tar.gz