diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-29 12:21:43 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 12:21:43 +0000 |
commit | 37100c47829ac395b23a9cdc824abb725dab774f (patch) | |
tree | 30e1fcd1deaff27601f28a6bcd426b0d954d2494 | |
parent | a307e13bd4f40871529aa5bcb0ae6afd108fbc0b (diff) |
automatic import of python-selenium-smart-locator
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-selenium-smart-locator.spec | 208 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 210 insertions, 0 deletions
@@ -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 @@ -0,0 +1 @@ +79484f2d2fc1a419ced7de8b037ccdab selenium-smart-locator-0.3.0.tar.gz |