pycharmers.cli.form_auto_fill_in module

pycharmers.cli.form_auto_fill_in.form_auto_fill_in(argv=['-M', 'html', '.', '_build'])[source]

Auto fill in your form using your saved information (or answer on the spot).

Parameters
  • path (str) – Path to environment file.

  • -remain-unchanged (bool) – Whether you want to update and memorize your answer. (default= True )

  • -Y/--yes (bool) – Automatic yes to prompts.

  • --quiet (bool) – Whether you want to be quiet or not. (default= False )

  • --browser (bool) – Whether you want to run Chrome with GUI browser. (default= True )

  • -P/--params (KwargsParamProcessor) – Specify the kwargs. You can specify by -P username=USERNAME -P password=PASSWORD

  • --show-data (bool) – Print the data in path.

Note

When you run from the command line, execute as follows:

$ form-auto-fill-in UHMRF --yes -P "username=USERNAME" -P "password=PASSWORD"
$ form-auto-fill-in UHMRF --show-data
$ form-auto-fill-in

Examples

>>> # Run in terminal
>>> form-auto-fill-in UHMRF --show-data
{
    "name": "UTokyo Health Management Report Form",
    "URL": "https://forms.office.com/Pages/ResponsePage.aspx?id=XXXXX",
    "login": {
        "0": {
        "func": "send_keys",
        "by": "xpath",
        :
    }
    :
}
>>> form-auto-fill-in
+--------------+--------------------------------------+
| Abbreviation |                 Name                 |
+==============+======================================+
|        UHMRF | UTokyo Health Management Report Form |
+--------------+--------------------------------------+
|      _sample |                         SAMPLE FORMS |
+--------------+--------------------------------------+
class pycharmers.cli.form_auto_fill_in.AutoFillInForms(path, verbose=True, **kwargs)[source]

Bases: object

If you want to create your own gateway class, please inherit this class.

Parameters
  • path (str) – Path to json data that describes the procedure of form.

  • verbose (bool) – Whether to print message or not. (default= True )

print

Print function according to verbose

Type

function

data

Data that describes the procedure of form.

Type

dict

path

Path to json data that describes the procedure of form.

Type

str

SUPPORTED_FORM_TYPES = ['radio', 'checkbox', 'text']
DOMAIN2FORM = {'forms.office.com': 'office'}
static load_data(path)[source]

Load data from json file.

Parameters

path (str) – Path to json file.

static save_data(path, data, indent=2, update=True)[source]

Save data at self.path

Parameters
  • path (str) – Path to json file.

  • indent (int) – If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation.

  • update (bool) – Whether to update "last_date" variable.

static whichForms(url)[source]

Decide which Forms from the domain of the url

Parameters

url (str) – URL of the forms.

Returns

Identifier of the forms.

Return type

str

static show_curt_browser(driver)[source]

Visualize the current browser by taking screenshots

Parameters

driver (WebDriver) – Selenium WebDriver.

static answer_question(qno, ans_data={}, inputElements=[], need_check=False)[source]

Answer each question.

Parameters
  • qno (int) – Question number in the form.

  • inputElements (list) – List of input elements in the form.

  • need_check (bool) – Whether you need to check the value when using the value in environment file. (default= False )

Returns

{"no": no, "val": val}

Return type

dict

show_data()[source]
login(driver, url, login_data={})[source]

Perform the login procedure required to answer the form.

Parameters
  • driver (WebDriver) – Selenium WebDriver.

  • url (str) – URL of the form.

  • login_data (dict) – Data required for login.

run(browser=False, **kwargs)[source]
Parameters

browser (bool) – Whether you want to run Chrome with GUI browser. (default= False )

dev_run(browser=True, **kwargs)[source]
Parameters
  • browser (bool) – Whether you want to run Chrome with GUI browser. (default= True )

  • WebDriver – Selenium WebDriver.

answer_form(driver, **kwargs)[source]

Answer the forms.

Parameters

driver (WebDriver) – Selenium WebDriver.

answer_form_office(driver, need_check=True, update=True, show_result=True, **kwargs)[source]