-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsample_web_ui_test.py
More file actions
104 lines (90 loc) · 2.89 KB
/
sample_web_ui_test.py
File metadata and controls
104 lines (90 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import argparse
import dataclasses
import datetime
import json
import logging
import os
import pathlib
import sys
import time
import typing
from selenium import webdriver
from selenium.webdriver.remote import webelement
import chromedriver_binary # Adds chromedriver binary to path
import log_tool
import system_loader
__version__ = "0.0.1"
def main():
"""sample_web_test"""
parser = argparse.ArgumentParser(description=main.__doc__)
parser.add_argument(
"-v",
"--version",
action="version",
version=__version__,
help="Show version and exit",
)
args = parser.parse_args() # type: system_loader.SampleArgs
conf = system_loader.Loader().load()
localTimeZone = datetime.datetime.now().astimezone().tzinfo
startDatetime = datetime.datetime.now(localTimeZone)
logger: logging.Logger = None
if conf.log.output_file:
os.makedirs("logs", exist_ok=True)
logger = log_tool.setup_logger(os.path.join("logs", "log.log"))
# launchly log
# logger = log_tool.setup_logger(log_tool.get_log_file_name())
else:
logger = log_tool.setup_logger()
logger.debug(
"\t".join(["Starting", str(__file__), str(__name__), str(__version__)])
)
logger.debug("\t".join(["args", json.dumps(vars(args), ensure_ascii=False)]))
options = webdriver.ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument("--disable-infobars")
# options.add_argument('--kiosk') # Full screen
# options.add_argument('--user-data-dir=' + './test/') # Save browser data
driver = webdriver.Chrome(
chromedriver_binary.chromedriver_filename, chrome_options=options
)
def wait():
time.sleep(3)
def close(code: int):
processingTime = datetime.datetime.now(localTimeZone) - startDatetime
logger.debug(
"\t".join(
[
"processingTime",
str(processingTime.total_seconds()) + "s",
str(processingTime),
]
)
)
exit(code)
try:
driver.get("https://www.google.com/")
el: webelement.WebElement = driver.find_element_by_class_name("gLFyf")
el.send_keys("search word")
wait()
el: webelement.WebElement = driver.find_element_by_class_name("MV3Tnb")
text = el.text
logger.debug(text)
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
logger.error(
"\t".join(
[
str(type(e)),
exc_tb.tb_frame.f_code.co_filename,
f"line {str(exc_tb.tb_lineno)}",
str(e),
]
)
)
driver.close()
close(1)
close(0)
if __name__ == "__main__":
main()