eaiautomatontools.information.retrieve_tabular

Present the information utilities for Selenium automaton.

Return the table data as a list of lists.

Background

Launch a test web server serving controlled web pages on localhost port 8081

Use the python resources server.

>>> from eaiautomatontools.resources.app import Server

>>> myserver = Server()

>>> myserver.start()
...

Instantiate a web driver using the eaiautomatontools.browserServer

>>> from eaiautomatontools.browserServer import BrowserServer

>>> myWebDriver = BrowserServer()

Use a default browser such as Chrome in 32 bit version

>>> myWebDriver.browser_name = "chrome"

Serve the web driver

>>> myWebDriver.serve()
<BLANKLINE>
0

Open the popups test page

>>> myWebDriver.go_to("http://localhost:8081/tables.html")
0

Nominal case

Import the information tool

>>> from eaiautomatontools.information import retrieve_tabular

We will retrieve the first tabular in the page using the xpath locator and save the data into a tab variable

>>> tab = retrieve_tabular(myWebDriver.webdriver, {"type": "xpath", "value": "/html/body/table[1]"})
>>> tab
[['First name', 'Last name'], ['John', 'Doe'], ['Jane', 'Doe']]

It works based on the tr and td tags.

>>> tab2 = retrieve_tabular(myWebDriver.webdriver, {"type": "xpath", "value": "/html/body/table[2]"})
>>> tab2
[['Header content 1', 'Header content 2'], ['Body content 1', 'Body content 2'], ['Footer content 1', 'Footer content 2']]

And it's case-insensitive

>>> tab3 = retrieve_tabular(myWebDriver.webdriver, {"type": "xpath", "value": "/html/body/table[1]"}, row_and_col=('TR', 'TD', 'TH'))
>>> tab3
[['First name', 'Last name'], ['John', 'Doe'], ['Jane', 'Doe']]

Error cases

Row and col tags are not found

>>> tab = retrieve_tabular(myWebDriver.webdriver, {"type": "xpath", "value": "/html/body/table[1]"}, row_and_col=('XR', 'XD', 'XH'))
>>> tab
[]

Table not found

>>> tab = retrieve_tabular(myWebDriver.webdriver, {"type": "xpath", "value": "/html/body/table[7]"})

>>> type(tab)
<class 'NoneType'>

Teardown

>>> myWebDriver.close()
0

>>> myWebDriver = None

>>> myserver.stop()

>>> myserver = None