[UPD] script selenium: support datetimepicker into input_text_with_mouse_move
- helping method to fill fields
This commit is contained in:
parent
4f39f86cc5
commit
27145f4b86
1 changed files with 65 additions and 0 deletions
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
|
import random
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
@ -399,6 +400,8 @@ class SeleniumLib(object):
|
||||||
no_scroll: bool = False,
|
no_scroll: bool = False,
|
||||||
viewport_ele_by: str = By.ID,
|
viewport_ele_by: str = By.ID,
|
||||||
viewport_ele_value: str = None,
|
viewport_ele_value: str = None,
|
||||||
|
clear_before: bool = False,
|
||||||
|
click_before: bool = False,
|
||||||
):
|
):
|
||||||
# ele = self.driver.find_element(by, value)
|
# ele = self.driver.find_element(by, value)
|
||||||
ele = self.get_element(by, value)
|
ele = self.get_element(by, value)
|
||||||
|
|
@ -412,6 +415,16 @@ class SeleniumLib(object):
|
||||||
ActionChains(self.driver).move_to_element(ele).perform()
|
ActionChains(self.driver).move_to_element(ele).perform()
|
||||||
|
|
||||||
# Write content
|
# Write content
|
||||||
|
if click_before:
|
||||||
|
# Need this to update a datetimepicker
|
||||||
|
ele.click()
|
||||||
|
time.sleep(0.3)
|
||||||
|
if clear_before:
|
||||||
|
ele.clear()
|
||||||
|
if click_before:
|
||||||
|
# Need this to update a datetimepicker
|
||||||
|
ele.click()
|
||||||
|
time.sleep(0.3)
|
||||||
ele.send_keys(text_value)
|
ele.send_keys(text_value)
|
||||||
if delay_after > 0:
|
if delay_after > 0:
|
||||||
time.sleep(delay_after)
|
time.sleep(delay_after)
|
||||||
|
|
@ -777,6 +790,58 @@ class SeleniumLib(object):
|
||||||
# By external process
|
# By external process
|
||||||
os.popen(f"vlc {self.filename}")
|
os.popen(f"vlc {self.filename}")
|
||||||
|
|
||||||
|
def generer_code_postal_quebec(self):
|
||||||
|
# Zip code from quebec canada
|
||||||
|
premieres_lettres = ["G", "H", "J"]
|
||||||
|
|
||||||
|
premiere_lettre = random.choice(premieres_lettres)
|
||||||
|
|
||||||
|
deuxieme_lettre = chr(random.randint(65, 90))
|
||||||
|
chiffre = str(random.randint(0, 9))
|
||||||
|
troisieme_lettre = chr(random.randint(65, 90))
|
||||||
|
|
||||||
|
code_postal = f"{premiere_lettre}{chiffre}{deuxieme_lettre} {chiffre}{troisieme_lettre}{chiffre}"
|
||||||
|
|
||||||
|
return code_postal
|
||||||
|
|
||||||
|
def generer_numero_telephone_quebec(self):
|
||||||
|
# Number from quebec canada
|
||||||
|
indicateurs_regionaux = [
|
||||||
|
"418",
|
||||||
|
"438",
|
||||||
|
"450",
|
||||||
|
"514",
|
||||||
|
"579",
|
||||||
|
"581",
|
||||||
|
"819",
|
||||||
|
"873",
|
||||||
|
]
|
||||||
|
|
||||||
|
indicatif = random.choice(indicateurs_regionaux)
|
||||||
|
|
||||||
|
numero = "".join(random.choices("0123456789", k=7))
|
||||||
|
|
||||||
|
numero_telephone = f"({indicatif}) {numero[:3]}-{numero[3:]}"
|
||||||
|
|
||||||
|
return numero_telephone
|
||||||
|
|
||||||
|
def generer_date_naissance(self, age_minimum=16):
|
||||||
|
annee_actuelle = datetime.datetime.now().year
|
||||||
|
annee_maximale = annee_actuelle - age_minimum
|
||||||
|
|
||||||
|
annee_minimale = 1900
|
||||||
|
|
||||||
|
annee_naissance = random.randint(annee_minimale, annee_maximale)
|
||||||
|
|
||||||
|
mois_naissance = random.randint(1, 12)
|
||||||
|
jour_naissance = random.randint(1, 28)
|
||||||
|
|
||||||
|
date_naissance = datetime.datetime(
|
||||||
|
annee_naissance, mois_naissance, jour_naissance
|
||||||
|
)
|
||||||
|
|
||||||
|
return date_naissance.strftime("%Y-%m-%d")
|
||||||
|
|
||||||
|
|
||||||
def fill_parser(parser):
|
def fill_parser(parser):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue