MT#57776 update dockerfile to make python csc tests work on debian 12

update browsers, selenium & dependencies and updated tests to
accomondate new syntax thats been a requirement since selenium 4.7

Change-Id: I8f1c15e2093aed0d8277e47bbfce19d6a4728a74
mr12.0
Nico Schedel 2 years ago
parent 6767abe0fa
commit 053682210a

1
.gitignore vendored

@ -1,6 +1,7 @@
.DS_Store .DS_Store
.thumbs.db .thumbs.db
node_modules node_modules
__pycache__
# Quasar core related directories # Quasar core related directories
.quasar .quasar

@ -5,10 +5,11 @@ FROM docker.mgm.sipwise.com/sipwise-bookworm:latest
# is updated with the current date. It will force refresh of all # is updated with the current date. It will force refresh of all
# of the base images and things like `apt-get update` won't be using # of the base images and things like `apt-get update` won't be using
# old cached versions when the Dockerfile is built. # old cached versions when the Dockerfile is built.
ENV REFRESHED_AT 2023-06-26 ENV REFRESHED_AT 2023-07-05
RUN apt-get update RUN apt-get update
RUN apt-get install --assume-yes \ RUN apt-get install --assume-yes \
apt-utils \
curl \ curl \
devscripts \ devscripts \
fluxbox \ fluxbox \
@ -19,9 +20,12 @@ RUN apt-get install --assume-yes \
net-tools \ net-tools \
procps \ procps \
python3 \ python3 \
python3-pip \ python3-coverage \
vim-tiny \ python3-nose2 \
python3-selenium \
tigervnc-standalone-server \ tigervnc-standalone-server \
unzip \
vim-tiny \
wget \ wget \
xterm xterm
@ -29,33 +33,35 @@ RUN adduser --disabled-password --gecos=Selenium-User selenium
WORKDIR /home/selenium/ WORKDIR /home/selenium/
# installing geckodriver (0.26) # installing geckodriver (0.33.0)
RUN wget http://deb.sipwise.com/files/geckodriver-v0.26.0-linux64.tar.gz && \ RUN wget http://deb.sipwise.com/files/geckodriver-v0.33.0-linux64.tar.gz && \
tar xvf geckodriver-v0.26.0-linux64.tar.gz && \ tar xvf geckodriver-v0.33.0-linux64.tar.gz && \
ln -s /home/selenium/geckodriver /usr/bin/geckodriver && \ ln -s /home/selenium/geckodriver /usr/bin/geckodriver && \
rm -f geckodriver-v0.26.0-linux64.tar.gz rm -f geckodriver-v0.33.0-linux64.tar.gz
# installing firefox (lang=en_US) (70.0.1) # installing firefox (lang=en_US) (114.0.2)
RUN wget http://deb.sipwise.com/files/firefox-70.0.1.tar.bz2 && \ RUN wget http://deb.sipwise.com/files/firefox-114.0.2.tar.bz2 && \
tar xvf firefox-70.0.1.tar.bz2 && \ tar xvf firefox-114.0.2.tar.bz2 && \
ln -s /home/selenium/firefox/firefox /usr/bin/firefox && \ ln -s /home/selenium/firefox/firefox /usr/bin/firefox && \
rm -f firefox-70.0.1.tar.bz2 rm -f firefox-114.0.2.tar.bz2
# installing chromedriver (114.0.5735.90)
RUN wget http://deb.sipwise.com/files/chromedriver_linux64_114.zip && \
unzip chromedriver_linux64_114.zip && \
#ln -s /home/selenium/chromedriver /usr/bin/chromedriver && \
rm -f chromedriver_linux64114.zip
# installing nose2 (0.9.1), coverage (4.5.4) and selenium (3.141.0) via pip # installing chrome (114.0.5735.198)
# considering to package latest version of python3-nose2/selenium/coverage as .deb package RUN wget http://deb.sipwise.com/files/google-chrome-stable_114_amd64.deb && \
# installing coverage first to satisfy dependency for nose2 apt install -y ./google-chrome-stable_114_amd64.deb && \
RUN wget http://deb.sipwise.com/files/nose2-0.9.1.tar.gz && \ rm -f google-chrome-stable_114_amd64.deb
wget http://deb.sipwise.com/files/selenium-3.141.0.tar.gz && \
wget http://deb.sipwise.com/files/coverage-4.5.4.tar.gz && \
pip3 install --break-system-packages coverage-4.5.4.tar.gz && \
pip3 install --break-system-packages nose2-0.9.1.tar.gz selenium-3.141.0.tar.gz && \
rm -f nose2-0.9.1.tar.gz selenium-3.141.0.tar.gz coverage-4.5.4.tar.gz
RUN echo "cd /code && ./t/selenium/testrunner 1.2.3.4 /code/ tap" >/home/selenium/.bash_history RUN echo "cd /code && ./t/selenium/testrunner 1.2.3.4 /code/ tap" >/home/selenium/.bash_history
RUN echo "su - selenium" >/root/.bash_history RUN echo "su - selenium" >/root/.bash_history
EXPOSE 5999 EXPOSE 5999
COPY t/selenium/jenkins_docker_run /home/selenium/ COPY t/selenium/jenkins_docker_run /home/selenium/
COPY t/selenium/webdriver_prefs.json /usr/lib/python3/dist-packages/selenium/webdriver/firefox/
################################################################################ ################################################################################
# Instructions for usage # Instructions for usage
@ -63,7 +69,7 @@ COPY t/selenium/jenkins_docker_run /home/selenium/
# When you want to build the base image from scratch (jump to the next section if you don't want to build yourself!): # When you want to build the base image from scratch (jump to the next section if you don't want to build yourself!):
# NOTE: run the following command from root folder of git repository: # NOTE: run the following command from root folder of git repository:
# % docker build --tag="ngcp-csc-ui-selenium-test-bookworm" -f t/selenium/Dockerfile . # % docker build --tag="ngcp-csc-ui-selenium-test-bookworm" -f t/selenium/Dockerfile .
# % docker run --rm -p 5999:5999 --shm-size 4g -i -t -v ~/Dokumente/ngcp-csc-ui:/code:rw ngcp-csc-ui-selenium-test-bookworm bash # % docker run --rm -p 5999:5999 --shm-size 4g -i -t -v ~/Documents/ngcp-csc-ui:/code:rw ngcp-csc-ui-selenium-test-bookworm bash
# #
# Use the existing docker image: # Use the existing docker image:
# % docker pull docker.mgm.sipwise.com/ngcp-csc-ui-selenium-test-bookworm # % docker pull docker.mgm.sipwise.com/ngcp-csc-ui-selenium-test-bookworm

@ -13,14 +13,14 @@ def login_csc(driver, name, pwd):
driver.get(os.environ['CATALYST_SERVER']) driver.get(os.environ['CATALYST_SERVER'])
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', name) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', name)
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', pwd) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', pwd)
driver.find_element_by_xpath('//*[@id="csc-login-card"]/div[3]/button[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]/div[3]/button[2]').click()
def logout_csc(driver): def logout_csc(driver):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[2]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[2]')))
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-main"]/button[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[2]').click()
scroll_to_element(driver, '/html/body//div[contains(text(), "Logout")]') scroll_to_element(driver, '/html/body//div[contains(text(), "Logout")]')
driver.find_element_by_xpath('/html/body//div[contains(text(), "Logout")]').click() driver.find_element(By.XPATH, '/html/body//div[contains(text(), "Logout")]').click()
def login_panel(driver): def login_panel(driver):
@ -28,128 +28,129 @@ def login_panel(driver):
driver.get(os.environ['CATALYST_SERVER'] + ":1443") driver.get(os.environ['CATALYST_SERVER'] + ":1443")
try: try:
driver.implicitly_wait(1) driver.implicitly_wait(1)
driver.find_element_by_xpath('//*[@id="q-app"]/div/footer/div/button/span[2]/span').click() driver.find_element(By.XPATH, '//*[@id="q-app"]/div/footer/div/button/span[2]/span').click()
driver.implicitly_wait(10) driver.implicitly_wait(10)
except: except:
pass pass
finally: finally:
driver.implicitly_wait(10) driver.implicitly_wait(10)
driver.find_element_by_xpath('//*[@id="username"]').send_keys('administrator') driver.find_element(By.XPATH, '//*[@id="username"]').send_keys('administrator')
driver.find_element_by_xpath('//*[@id="password"]').send_keys('administrator') driver.find_element(By.XPATH, '//*[@id="password"]').send_keys('administrator')
driver.find_element_by_xpath('//*[@id="submit"]').click() driver.find_element(By.XPATH, '//*[@id="submit"]').click()
def logout_panel(driver): def logout_panel(driver):
driver.find_element_by_xpath('//*[@id="top-nav"]/ul//a[contains(text(), "Logout")]').click() driver.find_element(By.XPATH, '//*[@id="top-nav"]/ul//a[contains(text(), "Logout")]').click()
def create_customer(driver, name=None): def create_customer(driver, name=None):
if not name: if not name:
name = 'customer' + str(random.randint(1, 100000)) + 'test' name = 'customer' + str(random.randint(1, 100000)) + 'test'
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element(By.LINK_TEXT, 'Customers').click()
driver.find_element_by_link_text('Create Customer').click() driver.find_element(By.LINK_TEXT, 'Create Customer').click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input')))
scroll_to_element(driver, '//*[@id="contactidtable"]//tr[1]//td/input') scroll_to_element(driver, '//*[@id="contactidtable"]//tr[1]//td/input')
driver.find_element_by_xpath('//*[@id="contactidtable"]//tr[1]//td/input').click() driver.find_element(By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input').click()
try: try:
driver.implicitly_wait(2) driver.implicitly_wait(2)
scroll_to_element(driver, '//*[@id="productidtable_filter"]/label/input') scroll_to_element(driver, '//*[@id="productidtable_filter"]/label/input')
fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'thisshouldnotexist') fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#productidtable tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#productidtable tr > td.dataTables_empty')
fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'Basic') fill_element(driver, '//*[@id="productidtable_filter"]/label/input', 'Basic')
driver.find_element_by_xpath('//*[@id="productidtable"]//tr[1]//td/input').click() driver.find_element(By.XPATH, '//*[@id="productidtable"]//tr[1]//td/input').click()
driver.implicitly_wait(10) driver.implicitly_wait(10)
except Exception as e: except Exception as e:
driver.implicitly_wait(10) driver.implicitly_wait(10)
del e del e
scroll_to_element(driver, '//*[@id="billing_profileidtable"]//tr[1]//td/input') scroll_to_element(driver, '//*[@id="billing_profileidtable"]//tr[1]//td/input')
driver.find_element_by_xpath('//*[@id="billing_profileidtable"]//tr[1]//td/input').click() driver.find_element(By.XPATH, '//*[@id="billing_profileidtable"]//tr[1]//td/input').click()
scroll_to_element(driver, '//*[@id="external_id"]') scroll_to_element(driver, '//*[@id="external_id"]')
fill_element(driver, '//*[@id="external_id"]', name) fill_element(driver, '//*[@id="external_id"]', name)
driver.find_element_by_xpath('//*[@id="save"]').click() driver.find_element(By.XPATH, '//*[@id="save"]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]')))
return name return name
def delete_customer(driver, name): def delete_customer(driver, name):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element(By.LINK_TEXT, 'Customers').click()
fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#Customer_table tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty')
fill_element(driver, '//*[@id="Customer_table_filter"]//input', name) fill_element(driver, '//*[@id="Customer_table_filter"]//input', name)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % name))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % name)))
click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Terminate")]') click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Terminate")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()
def create_subscriber(driver, customername, domainname): def create_subscriber(driver, customername, domainname):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element(By.LINK_TEXT, "Customers").click()
fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#Customer_table tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty')
fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername) fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername)))
click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]') click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]')
driver.find_element_by_link_text('Expand Groups').click() driver.find_element(By.XPATH, '//*[contains(., "Expand Groups")]').click()
driver.find_element(By.XPATH, '//*[contains(., "Expand Groups")]').click()
scroll_to_element(driver, 'Subscribers') scroll_to_element(driver, 'Subscribers')
driver.find_element_by_link_text("Create Subscriber").click() driver.find_element(By.LINK_TEXT, "Create Subscriber").click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable_paginate"]/a[4]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable_paginate"]/a[4]')))
fill_element(driver, '//*[@id="domainidtable_filter"]//input', 'thisshouldnotexist') fill_element(driver, '//*[@id="domainidtable_filter"]//input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#domainidtable tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#domainidtable tr > td.dataTables_empty')
fill_element(driver, '//*[@id="domainidtable_filter"]//input', domainname) fill_element(driver, '//*[@id="domainidtable_filter"]//input', domainname)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable"]//tr[1]//td[text()="%s"]' % domainname))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="domainidtable"]//tr[1]//td[text()="%s"]' % domainname)))
check_if_unchecked(driver, '//*[@id="domainidtable"]/tbody/tr[1]/td[4]/input') check_if_unchecked(driver, '//*[@id="domainidtable"]/tbody/tr[1]/td[4]/input')
driver.find_element_by_xpath('//*[@id="webusername"]').send_keys('testuser') driver.find_element(By.XPATH, '//*[@id="webusername"]').send_keys('testuser')
driver.find_element_by_xpath('//*[@id="webpassword"]').send_keys('testpasswd') driver.find_element(By.XPATH, '//*[@id="webpassword"]').send_keys('testpasswd')
driver.find_element_by_xpath('//*[@id="username"]').send_keys('testuser') driver.find_element(By.XPATH, '//*[@id="username"]').send_keys('testuser')
driver.find_element_by_xpath('//*[@id="password"]').send_keys('testpasswd') driver.find_element(By.XPATH, '//*[@id="password"]').send_keys('testpasswd')
scroll_to_element(driver, '//*[@id="administrative"]') scroll_to_element(driver, '//*[@id="administrative"]')
driver.find_element_by_xpath('//*[@id="administrative"]').click() driver.find_element(By.XPATH, '//*[@id="administrative"]').click()
driver.find_element_by_xpath('//*[@id="save"]').click() driver.find_element(By.XPATH, '//*[@id="save"]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]')))
def delete_subscriber(driver, customername): def delete_subscriber(driver, customername):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element(By.LINK_TEXT, 'Customers').click()
fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist') fill_element(driver, '//*[@id="Customer_table_filter"]//input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#Customer_table tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#Customer_table tr > td.dataTables_empty')
fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername) fill_element(driver, '//*[@id="Customer_table_filter"]//input', customername)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername)))
click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]') click_js(driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]')
driver.find_element_by_link_text('Expand Groups').click() driver.find_element(By.LINK_TEXT, 'Expand Groups').click()
scroll_to_element(driver, 'Subscribers') scroll_to_element(driver, 'Subscribers')
click_js(driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), "Terminate")]') click_js(driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), "Terminate")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()
def create_domain(driver, name=None): def create_domain(driver, name=None):
if not name: if not name:
name = 'domain' + str(random.randint(1, 100000)) + 'test' name = 'domain' + str(random.randint(1, 100000)) + 'test'
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Domains').click() driver.find_element(By.LINK_TEXT, 'Domains').click()
driver.find_element_by_link_text('Create Domain').click() driver.find_element(By.LINK_TEXT, 'Create Domain').click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input'))) WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input')))
driver.find_element_by_xpath('//*[@id="reselleridtable"]//tr[1]/td[5]/input').click() driver.find_element(By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input').click()
fill_element(driver, '//*[@id="domain"]', name) fill_element(driver, '//*[@id="domain"]', name)
driver.find_element_by_xpath('//*[@id="save"]').click() driver.find_element(By.XPATH, '//*[@id="save"]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]//div[@class="alert alert-info"]')))
return name return name
def delete_domain(driver, name): def delete_domain(driver, name):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath('//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Domains').click() driver.find_element(By.LINK_TEXT, 'Domains').click()
fill_element(driver, '//*[@id="Domain_table_filter"]//input', 'thisshouldnotexist') fill_element(driver, '//*[@id="Domain_table_filter"]//input', 'thisshouldnotexist')
driver.find_element_by_css_selector('#Domain_table tr > td.dataTables_empty') driver.find_element(By.CSS_SELECTOR, '#Domain_table tr > td.dataTables_empty')
fill_element(driver, '//*[@id="Domain_table_filter"]//input', name) fill_element(driver, '//*[@id="Domain_table_filter"]//input', name)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name)))
click_js(driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(), "Delete")]') click_js(driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(), "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()

@ -15,17 +15,17 @@ def fill_element(driver, element, text, pathtype=By.XPATH):
def scroll_to_element(driver, element): def scroll_to_element(driver, element):
if element[:1] == "/": if element[:1] == "/":
webelem = driver.find_element_by_xpath(element) webelem = driver.find_element(By.XPATH, element)
else: else:
webelem = driver.find_element_by_link_text(element) webelem = driver.find_element(By.LINK_TEXT, element)
driver.execute_script("arguments[0].scrollIntoView();", webelem) driver.execute_script("arguments[0].scrollIntoView();", webelem)
def click_js(driver, element): def click_js(driver, element):
if element[:1] == "/": if element[:1] == "/":
webelement = driver.find_element_by_xpath(element) webelement = driver.find_element(By.XPATH, element)
else: else:
webelement = driver.find_element_by_link_text(element) webelement = driver.find_element(By.LINK_TEXT ,element)
driver.execute_script("arguments[0].click();", webelement) driver.execute_script("arguments[0].click();", webelement)
@ -58,6 +58,6 @@ def wait_for_invisibility(driver, xpath):
def check_if_unchecked(driver, element): def check_if_unchecked(driver, element):
checkmark = driver.find_element_by_xpath(element) checkmark = driver.find_element(By.XPATH, element)
if not checkmark.is_selected(): if not checkmark.is_selected():
click_js(driver, element) click_js(driver, element)

@ -85,53 +85,54 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Block Incoming' page...", end="") print("Go to 'Block Incoming' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Block incoming")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Block incoming")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-incoming"]')) > 0, "'Block Incoming' page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]')) > 0, "'Block Incoming' page wasnt opened")
print("OK") print("OK")
print("Try to block all incoming anonymous Calls...", end="") print("Try to block all incoming anonymous Calls...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div[@tabindex="0"]/div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[@tabindex="0"]/div[1]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-incoming"]/div[1]/div/div[@aria-checked="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]/div[1]/div/div[@aria-checked="true"]')) > 0,
"Incoming Anonymous Calls were not disabled") "Incoming Anonymous Calls were not disabled")
print("OK") print("OK")
print("Try to enable option 'Only allow incoming calls from listed numbers'...", end="") print("Try to enable option 'Only allow incoming calls from listed numbers'...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div[contains(., "Only incoming calls")]/../div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[contains(., "Only incoming calls")]/../div[1]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div[contains(@class, "q-radio__inner--truthy")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[contains(@class, "q-radio__inner--truthy")]')) > 0,
"Option 'Only incoming calls from listed numbers are allowed' was not enabled") "Option 'Only incoming calls from listed numbers are allowed' was not enabled")
print("OK") print("OK")
""" """
print("Trying to add a number to the incoming calls list...", end="") print("Trying to add a number to the incoming calls list...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div/button[contains(., "Add number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[contains(., "Add number")]').click()
click_js(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input') click_js(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input')
fill_element(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input', "Testnumber") fill_element(driver, '//*[@id="csc-page-call-blocking-incoming"]//div/input', "Testnumber")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div/button[2]') driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[2]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div[@data-cy="csc-blocked-number"]/div[contains(., "Testnumber")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div[@data-cy="csc-blocked-number"]/div[contains(., "Testnumber")]')) > 0,
"Number was not added") "Number was not added")
print("OK") print("OK")
print("Trying to delete a number to the incoming calls list...", end="") print("Trying to delete a number to the incoming calls list...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-incoming"]//div/button[@data-cy="csc-more-menu"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]//div/button[@data-cy="csc-more-menu"]').click()
driver.find_element_by_xpath('/html/body//div[contains(., "Remove")]').click() driver.find_element(By.XPATH, '/html/body//div[contains(., "Remove")]').click()
driver.find_element_by_xpath('/html/body//div/button[contains(., "OK")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "OK")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-incoming"]/div[contains(., "No numbers found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-incoming"]/div[contains(., "No numbers found")]')) > 0,
"Number was not deleted") "Number was not deleted")
""" """
print("Go to 'Block Outgoing' page...", end="") print("Go to 'Block Outgoing' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Block outgoing")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Block outgoing")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-outgoing"]')) > 0, "'Block Outgoing' page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-outgoing"]')) > 0, "'Block Outgoing' page wasnt opened")
print("OK") print("OK")
print("Try to enable option 'Only allow incoming calls from listed numbers'...", end="") print("Try to enable option 'Only allow incoming calls from listed numbers'...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-blocking-outgoing"]/div[1]/div/div[2]/div[1]/div/div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-blocking-outgoing"]/div[1]/div/div[2]/div[1]/div/div[1]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-outgoing"]/div[1]/div/div[2]/div[1]/div[@aria-checked="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-outgoing"]/div[1]/div/div[2]/div[1]/div[@aria-checked="true"]')) > 0,
"Option 'Only outgoing calls from listed numbers are allowed' was not enabled") "Option 'Only outgoing calls from listed numbers are allowed' was not enabled")
filename = 0 filename = 0
@ -144,61 +145,62 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Call Forwarding' page...", end="") print("Go to 'Call Forwarding' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened")
print("OK") print("OK")
print("Create a call forwarding 'if available'...", end="") print("Create a call forwarding 'if available'...", end="")
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]')))
time.sleep(1) time.sleep(1)
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary]"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
time.sleep(1) time.sleep(1)
click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]')
click_js(driver, '/html/body/div[3]/div/div[3]') click_js(driver, '/html/body/div[3]/div/div[3]')
print("OK") print("OK")
print("Try to add a condition 'call from...' to the call forwarding...", end="") print("Try to add a condition 'call from...' to the call forwarding...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div[1]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div/div[1]').click()
fill_element(driver, '/html/body//div[1]/div/label//div//input', 'TestUser') fill_element(driver, '/html/body//div[1]/div/label//div//input', 'TestUser')
fill_element(driver, '/html/body//div[2]/div/label//div//input', '1234') fill_element(driver, '/html/body//div[2]/div/label//div//input', '1234')
driver.find_element_by_xpath('/html/body//button[contains(., "Add number")]').click() driver.find_element(By.XPATH, '/html/body//button[contains(., "Add number")]').click()
fill_element(driver, '/html/body/div[3]//div[3]//label//div//input', '5678') fill_element(driver, '/html/body/div[3]//div[3]//label//div//input', '5678')
driver.find_element_by_xpath('/html/body//button[contains(., "Save")]').click() driver.find_element(By.XPATH, '/html/body//button[contains(., "Save")]').click()
wait_for_invisibility(driver, '/html/body/div[3]') wait_for_invisibility(driver, '/html/body/div[3]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]')) > 0,
"Condition 'call from...' was not added") "Condition 'call from...' was not added")
print("OK") print("OK")
print("Try to edit 'forwared to...' number...", end="") print("Try to edit 'forwared to...' number...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Number")]').click()
fill_element(driver, "/html/body//label//div//input", 'TestNumber') fill_element(driver, "/html/body//label//div//input", 'TestNumber')
driver.find_element_by_xpath('/html/body//div/button[contains(., "Set")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "TestNumber")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "TestNumber")]')) > 0,
"'forward to...' number was not changed") "'forward to...' number was not changed")
print("OK") print("OK")
print("Try to add a second condition 'office hours are...'...", end="") print("Try to add a second condition 'office hours are...'...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div[6]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div/div[6]').click()
fill_element(driver, '/html/body//div[1]/label//div//input[@aria-label="Start time"]', '1200') fill_element(driver, '/html/body//div[1]/label//div//input[@aria-label="Start time"]', '1200')
fill_element(driver, '/html/body//div[2]/label//div//input[@aria-label="End time"]', '1800') fill_element(driver, '/html/body//div[2]/label//div//input[@aria-label="End time"]', '1800')
driver.find_element_by_xpath('/html/body//div//button[contains(., "Save")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Save")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday, Tuesday, Wednesday, Thursday, Friday")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday, Tuesday, Wednesday, Thursday, Friday")]')) > 0,
"'Office hours are...' condition is not correct") "'Office hours are...' condition is not correct")
print("OK") print("OK")
print("Try to delete second condition...", end="") print("Try to delete second condition...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "Monday")]').click()
driver.find_element_by_xpath('/html/body//div//button[contains(., "Delete")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Delete")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0,
"Second condition was not deleted") "Second condition was not deleted")
print("OK") print("OK")
print("Try to add second condition 'date is...'...", end="") print("Try to add second condition 'date is...'...", end="")
@ -207,66 +209,66 @@ class testrun(unittest.TestCase):
day -= 1 day -= 1
elif day < 28: elif day < 28:
day += 1 day += 1
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div[3]/div[3]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div/div[3]/div[3]').click()
driver.find_element_by_xpath('/html/body//div[@class="q-date__calendar-days fit"]//div//button//span[normalize-space()="' + str(day) + '"]').click() driver.find_element(By.XPATH, '/html/body//div[@class="q-date__calendar-days fit"]//div//button//span[normalize-space()="' + str(day) + '"]').click()
driver.find_element_by_xpath('/html/body//div//button[contains(., "Save")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Save")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
if day < 10: if day < 10:
day = "0" + str(day) day = "0" + str(day)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[2][contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[2][contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]')) > 0,
"'Office hours are...' condition is not correct") "'Office hours are...' condition is not correct")
print("OK") print("OK")
print("Try to delete second condition...", end="") print("Try to delete second condition...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "' + datetime.today().strftime('%Y/%m/') + str(day) + '")]').click()
driver.find_element_by_xpath('/html/body//div//button[contains(., "Delete")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Delete")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "condition")]')) > 0,
"Second condition was not deleted") "Second condition was not deleted")
print("OK") print("OK")
print("Try to delete first condition...", end="") print("Try to delete first condition...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div/span[contains(., "TestUser")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[3]/button[1]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[3]/button[1]').click()
wait_for_invisibility(driver, '/html/body/div[3]/div/div[4]/svg') wait_for_invisibility(driver, '/html/body/div[3]/div/div[4]/svg')
print("OK") print("OK")
print("Try to add another foward...", end="") print("Try to add another foward...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click()
driver.find_element_by_xpath('/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Voicebox")]').click() driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Voicebox")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "Voicebox")]')) > 0, "Voicebox forwarding was not added") len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[contains(., "Voicebox")]')) > 0, "Voicebox forwarding was not added")
print("OK") print("OK")
print("Try to change the amount of time before it switches to the next forward...", end="") print("Try to change the amount of time before it switches to the next forward...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/div[2]/div/span[contains(., "seconds")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/div[2]/div/span[contains(., "seconds")]').click()
fill_element(driver, '/html/body/div[3]/label/div/div/div[2]/input', "30") fill_element(driver, '/html/body/div[3]/label/div/div/div[2]/input', "30")
driver.find_element_by_xpath('/html/body/div[3]/div/button[2]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/button[2]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/div[2]/div/span[contains(., "30")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[3]/div[2]/div/span[contains(., "30")]')) > 0,
"Voicebox forwarding time was not changed") "Voicebox forwarding time was not changed")
print("OK") print("OK")
print("Try to disable a call forward...", end="") print("Try to disable a call forward...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click()
driver.find_element_by_xpath('/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Disable")]').click() driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Disable")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-wrapper-call-forwarding"]//div[@data-cy="q-item-section"][@disabled="disabled"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]//div[@data-cy="q-item-section"][@disabled="disabled"]')) > 0,
"Call forward was not disabled") "Call forward was not disabled")
print("OK") print("OK")
print("Try to enable a call forward...", end="") print("Try to enable a call forward...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click()
driver.find_element_by_xpath('/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Enable")]').click() driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Enable")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[4]/svg')
print("OK") print("OK")
print("Try to delete call forwarding...", end="") print("Try to delete call forwarding...", end="")
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div[2]/button').click()
driver.find_element_by_xpath('/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Remove")]').click() driver.find_element(By.XPATH, '/html/body//div[@class="q-list q-list--dark"]/div[contains(., "Remove")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[3]/button[2]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div[2]/div/div[3]/button[2]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
self.assertTrue( self.assertTrue(
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div/div').text == "Always", "Call forward was not deleted") driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div/div[1]/div/div').text == "Always", "Call forward was not deleted")
filename = 0 filename = 0
def test_fax_settings(self): def test_fax_settings(self):
@ -282,51 +284,51 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Fax Settings' page...", end="") print("Go to 'Fax Settings' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Fax Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Fax Settings")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-main"]')) > 0, "Fax page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-main"]')) > 0, "Fax page wasnt opened")
print("OK") print("OK")
print("Try to add a new destination...", end="") print("Try to add a new destination...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg')
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div//button[contains(., "Add destination")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//button[contains(., "Add destination")]').click()
fill_element(driver, '//*[@id="csc-page-main"]/main//div//label//input[@aria-label="Destination Email"]', "testdestination@test.com") fill_element(driver, '//*[@id="csc-page-main"]/main//div//label//input[@aria-label="Destination Email"]', "testdestination@test.com")
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div//label[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//label[2]').click()
driver.find_element_by_xpath('/html/body//div[contains(., "PDF")]').click() driver.find_element(By.XPATH, '/html/body//div[contains(., "PDF")]').click()
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div//button[contains(., "Create destination")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div//button[contains(., "Create destination")]').click()
print("OK") print("OK")
print("Check if destination is correct...", end="") print("Check if destination is correct...", end="")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-main"]//main//div[contains(., "<testdestination@test.com> as PDF")]')) > 0, "Destination was not found") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-main"]//main//div[contains(., "<testdestination@test.com> as PDF")]')) > 0, "Destination was not found")
print("OK") print("OK")
print("Try to edit Fax destination. Disabling 'Deliver incoming/outgoing Faxes'...", end="") print("Try to edit Fax destination. Disabling 'Deliver incoming/outgoing Faxes'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg')
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]').click()
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Incoming Faxes"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Incoming Faxes"]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg')
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Outgoing Faxes"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main/div[2]//div[@aria-label="Deliver Outgoing Faxes"]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg')
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]/div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@data-cy="csc-list-item"]/div[1]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_recieved")]') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_recieved")]')
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_made")]') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main//div/i[contains(., "call_made")]')
print("OK") print("OK")
print("Try to activate sendfax...", end="") print("Try to activate sendfax...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-main"]/main//div[@aria-label="Active"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-main"]/main//div[@aria-label="Active"]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]/button[1]')) > 0, "Fax button was not found") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[1]')) > 0, "Fax button was not found")
print("OK") print("OK")
print("Try to send a fax to a test destination...", end="") print("Try to send a fax to a test destination...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-main"]/main/div[2]/div[1]/div[5]/div[2]/svg')
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-main"]/button[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[1]').click()
driver.find_element_by_xpath('/html/body/div[contains(., "Send Fax")]').click() driver.find_element(By.XPATH, '/html/body/div[contains(., "Send Fax")]').click()
fill_element(driver, '/html/body//div//label//div/input[@aria-label="Destination Number"]', '999999') fill_element(driver, '/html/body//div//label//div/input[@aria-label="Destination Number"]', '999999')
fill_element(driver, '/html/body//div//label//div/input[@aria-label="Page Header"]', 'Test') fill_element(driver, '/html/body//div//label//div/input[@aria-label="Page Header"]', 'Test')
fill_element(driver, '/html/body//div//label//div/textarea[@aria-label="Content"]', 'This is a test Text') fill_element(driver, '/html/body//div//label//div/textarea[@aria-label="Content"]', 'This is a test Text')
driver.find_element_by_xpath('/html/body//div//button[contains(., "Send")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "Send")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('/html/body//div[@role="alert"]//div[contains(., "Sending fax completed")]')) > 0, "Fax was not sent") len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]//div[contains(., "Sending fax completed")]')) > 0, "Fax was not sent")
print("OK") print("OK")
filename = 0 filename = 0
@ -337,82 +339,82 @@ class testrun(unittest.TestCase):
driver = self.driver driver = self.driver
driver.get(os.environ['CATALYST_SERVER']) driver.get(os.environ['CATALYST_SERVER'])
print("Try to log in with no credentials...", end="") print("Try to log in with no credentials...", end="")
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown")
print("OK") print("OK")
print("Try to log in with invalid credentials...", end="") print("Try to log in with invalid credentials...", end="")
driver.get(os.environ['CATALYST_SERVER']) driver.get(os.environ['CATALYST_SERVER'])
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "invaliduser") fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "invaliduser")
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass") fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass")
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown")
print("OK") print("OK")
print("Try to log in with invalid password...", end="") print("Try to log in with invalid password...", end="")
driver.get(os.environ['CATALYST_SERVER']) driver.get(os.environ['CATALYST_SERVER'])
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname)
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass") fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "invalidpass")
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown")
print("OK") print("OK")
print("Try to log in with empty password...", end="") print("Try to log in with empty password...", end="")
driver.get(os.environ['CATALYST_SERVER']) driver.get(os.environ['CATALYST_SERVER'])
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname)
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('/html/body//div[@role="alert"]')) > 0, "Error Message was not shown") len(driver.find_elements(By.XPATH, '/html/body//div[@role="alert"]')) > 0, "Error Message was not shown")
print("OK") print("OK")
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname)
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "testpasswd") fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "testpasswd")
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Try to log out...", end="") print("Try to log out...", end="")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-main"]/button[contains(., "testuser")]').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-main"]/button[contains(., "testuser")]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-login"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-login"]')) > 0,
"Logout wasnt successful") "Logout wasnt successful")
print("OK") print("OK")
print("Trying to change to every available language...", end="") print("Trying to change to every available language...", end="")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-login"]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click()
click_js(driver, '/html/body/div[3]/div[3]') click_js(driver, '/html/body/div[3]/div[3]')
wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]')
time.sleep(1) time.sleep(1)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-login-card"]/div[contains(., "Subscriber-Anmeldung")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Subscriber-Anmeldung")]')) > 0,
"Language wasnt changed to German") "Language wasnt changed to German")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-login"]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click()
click_js(driver, '/html/body/div[3]/div[4]') click_js(driver, '/html/body/div[3]/div[4]')
wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]')
time.sleep(1) time.sleep(1)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-login-card"]/div[contains(., "Iniciar sesión de suscriptor")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Iniciar sesión de suscriptor")]')) > 0,
"Language wasnt changed to Spanish") "Language wasnt changed to Spanish")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-login"]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click()
click_js(driver, '/html/body/div[3]/div[5]') click_js(driver, '/html/body/div[3]/div[5]')
wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]')
time.sleep(1) time.sleep(1)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-login-card"]/div[contains(., "Authentification de labonné")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Authentification de labonné")]')) > 0,
"Language wasnt changed to French") "Language wasnt changed to French")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-login"]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click()
click_js(driver, '/html/body/div[3]/div[6]') click_js(driver, '/html/body/div[3]/div[6]')
wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]')
time.sleep(1) time.sleep(1)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-login-card"]/div[contains(., "Accesso abbonato")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Accesso abbonato")]')) > 0,
"Language wasnt changed to Italian") "Language wasnt changed to Italian")
driver.find_element_by_xpath('//*[@id="csc-header-toolbar-login"]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-header-toolbar-login"]/button').click()
click_js(driver, '/html/body/div[3]/div[2]') click_js(driver, '/html/body/div[3]/div[2]')
wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]') wait_for_invisibility(driver, '//*[@id="csc-language-menu-login"]')
time.sleep(1) time.sleep(1)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-login-card"]/div[contains(., "Subscriber Sign In")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-login-card"]/div[contains(., "Subscriber Sign In")]')) > 0,
"Language wasnt changed to English") "Language wasnt changed to English")
print("OK") print("OK")
filename = 0 filename = 0
@ -426,62 +428,62 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname) fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="text"]', "testuser@" + self.domainname)
fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "testpasswd") fill_element(driver, '//*[@id="csc-login-card"]//div//input[@type="password"]', "testpasswd")
driver.find_element_by_xpath('//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click() driver.find_element(By.XPATH, '//*[@id="csc-login-card"]//button[contains(., "Sign In")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Start new call' page...", end="") print("Go to 'Start new call' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]/a[contains(., "Start new call")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]/a[contains(., "Start new call")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-call"]')) > 0, "Start new call page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-call"]')) > 0, "Start new call page wasnt opened")
print("OK") print("OK")
print("Go to 'Conversations' page...", end="") print("Go to 'Conversations' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]/a[contains(., "Conversations")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]/a[contains(., "Conversations")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-conversations"]')) > 0, "Conversations page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]')) > 0, "Conversations page wasnt opened")
print("OK") print("OK")
print("Trying to go through every subpage...", end="") print("Trying to go through every subpage...", end="")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-conversations"]//div[contains(., "No Calls, Voicemails or Faxes found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Calls, Voicemails or Faxes found")]')) > 0,
"Sub page 'All' wasnt opened") "Sub page 'All' wasnt opened")
driver.find_element_by_xpath('//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[2]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-conversations"]//div[contains(., "No Calls found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Calls found")]')) > 0,
"Sub page 'Calls' wasnt opened") "Sub page 'Calls' wasnt opened")
driver.find_element_by_xpath('//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[3]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[3]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-conversations"]//div[contains(., "No Voicemails found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Voicemails found")]')) > 0,
"Sub page 'Voicemails' wasnt opened") "Sub page 'Voicemails' wasnt opened")
driver.find_element_by_xpath('//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[4]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-conversations"]//div[@role="tablist"]/div/div[4]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-conversations"]//div[contains(., "No Faxes found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-conversations"]//div[contains(., "No Faxes found")]')) > 0,
"Sub page 'Faxes' wasnt opened") "Sub page 'Faxes' wasnt opened")
print("OK") print("OK")
print("Go to 'General'...", end="") print("Go to 'General'...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "General")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "General")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]//div[contains(., "Music on Hold")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div[contains(., "Music on Hold")]')) > 0,
"General page wasnt opened") "General page wasnt opened")
print("OK") print("OK")
print("Try to enable 'Music on Hold'...", end="") print("Try to enable 'Music on Hold'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[1]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[1]/div[2]/svg')
click_js(driver, '//*[@id="csc-page-voicebox"]//div[@aria-label="Music on Hold"]/div[1]') click_js(driver, '//*[@id="csc-page-voicebox"]//div[@aria-label="Music on Hold"]/div[1]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]//div[@aria-checked="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div[@aria-checked="true"]')) > 0,
"Music on Hold was not enabled") "Music on Hold was not enabled")
print("OK") print("OK")
print("Go to 'Privacy' page...", end="") print("Go to 'Privacy' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Privacy")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Privacy")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-privacy"]')) > 0, "Privacy page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-privacy"]')) > 0, "Privacy page wasnt opened")
print("OK") print("OK")
print("Try to enable privacy setting...", end="") print("Try to enable privacy setting...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-blocking-privacy"]/div/div/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-blocking-privacy"]/div/div/div[2]/svg')
click_js(driver, '//*[@id="csc-page-call-blocking-privacy"]//div[@role="checkbox"]/div[1]') click_js(driver, '//*[@id="csc-page-call-blocking-privacy"]//div[@role="checkbox"]/div[1]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-blocking-privacy"]//div[@aria-checked="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-blocking-privacy"]//div[@aria-checked="true"]')) > 0,
"Privacy setting wasnt enabled") "Privacy setting wasnt enabled")
filename = 0 filename = 0
@ -495,49 +497,50 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Recordings' page...", end="") print("Go to 'Recordings' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Recordings")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Recordings")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-recording"]')) > 0, "Recordings page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]')) > 0, "Recordings page wasnt opened")
print("OK") print("OK")
print("Add a timerange filter and check if they got created...", end="") print("Add a timerange filter and check if they got created...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]//div//button[contains(., "Filter")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div//button[contains(., "Filter")]').click()
click_js(driver, '//*[@id="csc-page-call-recording"]//div[@data-cy="csc-call-recording-filters"]//label[1]/div/div/div[1]') click_js(driver, '//*[@id="csc-page-call-recording"]//div[@data-cy="csc-call-recording-filters"]//label[1]/div/div/div[1]')
driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[1]').click() driver.find_element(By.XPATH, '/html/body/div[3]/div[2]/div[1]').click()
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[1]/div/div/div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[1]/div/div/div[1]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div/button').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div[2]/div/button').click()
checkstring = "Start time: " + now.strftime("%Y-%m-%d") + " 00:00" checkstring = "Start time: " + now.strftime("%Y-%m-%d") + " 00:00"
print(checkstring) print(checkstring)
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0,
"Start timerange could not be found") "Start timerange could not be found")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[2]/div/div/div[1]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label[2]/div/div/div[1]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div/button').click() driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div[2]/div/button').click()
checkstring = "End time: " + now.strftime("%Y-%m-%d") + " 00:00" checkstring = "End time: " + now.strftime("%Y-%m-%d") + " 00:00"
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "' + checkstring + '")]')) > 0,
"End timerange could not be found") "End timerange could not be found")
print("OK") print("OK")
print("Try to remove the End time...", end="") print("Try to remove the End time...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]') wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "End time:")]/../i[2]')
print("OK") print("OK")
print("Add filter by CallID...", end="") print("Add filter by CallID...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]//div//label//div[contains(., "Filter by")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div//label//div[contains(., "Filter by")]').click()
click_js(driver, '/html/body/div[3]/div[2]/div[4]') click_js(driver, '/html/body/div[3]/div[2]/div[4]')
fill_element(driver, '//*[@id="csc-page-call-recording"]//div//label//input[@aria-label="CallID"]', "TestCallID") fill_element(driver, '//*[@id="csc-page-call-recording"]//div//label//input[@aria-label="CallID"]', "TestCallID")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label/div/div/div[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]/div[1]/div/div[3]/div/div[1]/div[2]/label/div/div/div[2]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "CallID: TestCallID")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID: TestCallID")]')) > 0,
"Call ID could not be found") "Call ID could not be found")
print("OK") print("OK")
print("Try to delete all filters...", end="") print("Try to delete all filters...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]') wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "Start time:")]/../i[2]')
driver.find_element_by_xpath('//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]') wait_for_invisibility(driver, '//*[@id="csc-page-call-recording"]//div[contains(., "CallID:")]/../i[2]')
filename = 0 filename = 0
@ -550,35 +553,36 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Reminder' page...", end="") print("Go to 'Reminder' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Reminder")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Reminder")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-reminder"]')) > 0, "Reminder page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-reminder"]')) > 0, "Reminder page wasnt opened")
print("OK") print("OK")
print("Try to enable reminders...", end="") print("Try to enable reminders...", end="")
click_js(driver, '//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is disabled"]//input') click_js(driver, '//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is disabled"]//input')
wait_for_invisibility(driver, '//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is disabled"]') wait_for_invisibility(driver, '//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is disabled"]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is enabled"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Reminder is enabled"]')) > 0,
"Reminder has not been enabled") "Reminder has not been enabled")
print("OK") print("OK")
print("Try to change reminder recurrance to 'Always'...", end="") print("Try to change reminder recurrance to 'Always'...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-reminder"]//div[@aria-label="Always"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body//div[@role="alert"]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body//div[@role="alert"]')))
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]')) > 0,
"Reminder has not been enabled") "Reminder has not been enabled")
print("OK") print("OK")
print("Try to change time to 12:00...") print("Try to change time to 12:00...")
driver.find_element_by_xpath('//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click() driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click()
driver.find_element_by_xpath('//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click() driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input').click()
fill_element(driver, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input', '1200') fill_element(driver, '//*[@id="csc-page-reminder"]/div/div[3]/div/label/div/div/div[2]/input', '1200')
print(driver.find_element_by_xpath('//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]').get_attribute("value")) print(driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]//div[@aria-label="Always"][@aria-checked="true"]').get_attribute("value"))
self.assertTrue( self.assertTrue(
driver.find_element_by_xpath('//*[@id="csc-page-reminder"]/div//label//div//input').get_attribute("value") == '12:00', driver.find_element(By.XPATH, '//*[@id="csc-page-reminder"]/div//label//div//input').get_attribute("value") == '12:00',
"Time has not been changed") "Time has not been changed")
filename = 0 filename = 0
@ -591,63 +595,64 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Call Forwarding' page...", end="") print("Go to 'Call Forwarding' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened")
print("OK") print("OK")
print("Create a call forwarding 'if available'...", end="") print("Create a call forwarding 'if available'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg')
click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]')
time.sleep(1) time.sleep(1)
click_js(driver, '/html/body/div[3]/div/div[1]') click_js(driver, '/html/body/div[3]/div/div[1]')
print("OK") print("OK")
print("Create a call forwarding 'if not available'...", end="") print("Create a call forwarding 'if not available'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg')
click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]')
time.sleep(1) time.sleep(1)
click_js(driver, '/html/body/div[3]/div/div[2]') click_js(driver, '/html/body/div[3]/div/div[2]')
print("OK") print("OK")
print("Create a call forwarding 'if busy'...", end="") print("Create a call forwarding 'if busy'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg')
click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]') click_js(driver, '//*[@id="csc-page-call-forwarding"]//div//button[contains(., "Add forwarding")]')
time.sleep(1) time.sleep(1)
click_js(driver, '/html/body/div[3]/div/div[3]') click_js(driver, '/html/body/div[3]/div/div[3]')
print("OK") print("OK")
print("Try to edit all 'forwared to...' numbers...", end="") print("Try to edit all 'forwared to...' numbers...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg')
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div[1]//div/span[contains(., "Number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[1]//div/span[contains(., "Number")]').click()
fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL") fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL")
driver.find_element_by_xpath('/html/body//div/button[contains(., "Set")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Voicebox")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Voicebox")]').click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]')))
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened")
print("OK") print("OK")
print("Create a call forwarding 'if available'...", end="") print("Create a call forwarding 'if available'...", end="")
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]/div[1]/button/span[3]/svg[@class="q-spinner text-primary"]')
wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg') wait_for_invisibility(driver, '//*[@id="csc-page-call-forwarding"]//button[contains(., "Add forwarding")]/span/svg')
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div[1]//div/span[contains(., "Number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[1]//div/span[contains(., "Number")]').click()
fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL") fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL")
driver.find_element_by_xpath('/html/body//div/button[contains(., "Set")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div[2]//div/span[contains(., "Number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[2]//div/span[contains(., "Number")]').click()
fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL") fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL")
driver.find_element_by_xpath('/html/body//div/button[contains(., "Set")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
driver.find_element_by_xpath('//*[@id="csc-wrapper-call-forwarding"]/div[3]//div/span[contains(., "Number")]').click() driver.find_element(By.XPATH, '//*[@id="csc-wrapper-call-forwarding"]/div[3]//div/span[contains(., "Number")]').click()
fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL") fill_element(driver, "/html/body//label//div//input", "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL")
driver.find_element_by_xpath('/html/body//div/button[contains(., "Set")]').click() driver.find_element(By.XPATH, '/html/body//div/button[contains(., "Set")]').click()
wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg') wait_for_invisibility(driver, '//*[@id="csc-wrapper-call-forwarding"]/div/div[2]/div[4]/svg')
print("OK") print("OK")
print("Go to Admin Panel...", end="") print("Go to Admin Panel...", end="")
@ -655,12 +660,14 @@ class testrun(unittest.TestCase):
login_panel(driver) login_panel(driver)
print("OK") print("OK")
print("Open Subscriber and check if Call forwarding doesn't execute malicious code...", end="") print("Open Subscriber and check if Call forwarding doesn't execute malicious code...", end="")
driver.find_element_by_xpath('//*[@id="main-nav"]/li//span[contains(., "Settings")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]/li//span[contains(., "Settings")]').click()
driver.find_element_by_xpath('//*[@id="main-nav"]//li/a[contains(., "Customers")]').click() driver.find_element(By.XPATH, '//*[@id="main-nav"]//li/a[contains(., "Customers")]').click()
fill_element(driver, '//*[@id="Customer_table_filter"]/label/input', self.key) fill_element(driver, '//*[@id="Customer_table_filter"]/label/input', self.key)
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]/td[2][contains(., "' + self.key + '")]'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="Customer_table"]//tr[1]/td[2][contains(., "' + self.key + '")]')))
click_js(driver, '//*[@id="Customer_table"]/tbody/tr[1]/td//a[contains(., "Details")]') click_js(driver, '//*[@id="Customer_table"]/tbody/tr[1]/td//a[contains(., "Details")]')
driver.find_element_by_xpath('//*[@id="customer_details"]/div[contains(., "Subscribers")]').click() driver.find_element(By.XPATH, '//*[contains(., "Expand Groups")]').click()
driver.find_element(By.XPATH, '//*[contains(., "Expand Groups")]').click()
scroll_to_element(driver, 'Subscribers')
click_js(driver, '//*[@id="subscribers_table"]/tbody/tr[1]//td//a[contains(., "Preferences")]') click_js(driver, '//*[@id="subscribers_table"]/tbody/tr[1]//td//a[contains(., "Preferences")]')
try: try:
alert_obj = Alert(driver) alert_obj = Alert(driver)
@ -670,40 +677,40 @@ class testrun(unittest.TestCase):
alert_obj.accept() alert_obj.accept()
except selenium.common.exceptions.NoAlertPresentException: except selenium.common.exceptions.NoAlertPresentException:
pass pass
driver.find_element_by_xpath('//*[@id="preference_groups"]/div[contains(., "Call Forwards")]').click() driver.find_element(By.XPATH, '//*[@id="preference_groups"]/div[contains(., "Call Forwards")]').click()
driver.find_element_by_xpath('//*[@id="preferences_table_cf"]/tbody/tr[1]/td[6]/a').click() driver.find_element(By.XPATH, '//*[@id="preferences_table_cf"]/tbody/tr[1]/td[6]/a').click()
self.assertTrue( self.assertTrue(
"checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element_by_xpath('//div[@id="collapse_cf"]//table//tr[1]/td[6]/div/div[2]').text, "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element(By.XPATH, '//div[@id="collapse_cf"]//table//tr[1]/td[6]/div/div[2]').text,
"Didn't match test string") "Didn't match test string")
driver.find_element_by_xpath('//div[@id="collapse_cf"]/div/table/tbody/tr[1]/td[6]//div/button').click() driver.find_element(By.XPATH, '//div[@id="collapse_cf"]/div/table/tbody/tr[1]/td[6]//div/button').click()
driver.find_element_by_xpath('//*[@id="preferences_table_cf"]/tbody/tr[2]/td[6]/a').click() driver.find_element(By.XPATH, '//*[@id="preferences_table_cf"]/tbody/tr[2]/td[6]/a').click()
self.assertTrue( self.assertTrue(
"checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element_by_xpath('//div[@id="collapse_cf"]//table//tr[2]/td[6]/div/div[2]').text, "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element(By.XPATH, '//div[@id="collapse_cf"]//table//tr[2]/td[6]/div/div[2]').text,
"Didn't match test string") "Didn't match test string")
driver.find_element_by_xpath('//div[@id="collapse_cf"]/div/table/tbody/tr[2]/td[6]//div/button').click() driver.find_element(By.XPATH, '//div[@id="collapse_cf"]/div/table/tbody/tr[2]/td[6]//div/button').click()
driver.find_element_by_xpath('//*[@id="preferences_table_cf"]/tbody/tr[4]/td[6]/a').click() driver.find_element(By.XPATH, '//*[@id="preferences_table_cf"]/tbody/tr[4]/td[6]/a').click()
self.assertTrue( self.assertTrue(
"checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element_by_xpath('//div[@id="collapse_cf"]//table//tr[4]/td[6]/div/div[2]').text, "checking <script>alert('test')</script> asdфывфів123!@#$%^&*()_+[]\|}{;'\":,./?><EOL" in driver.find_element(By.XPATH, '//div[@id="collapse_cf"]//table//tr[4]/td[6]/div/div[2]').text,
"Didn't match test string") "Didn't match test string")
driver.find_element_by_xpath('//div[@id="collapse_cf"]/div/table/tbody/tr[4]/td[6]//div/button').click() driver.find_element(By.XPATH, '//div[@id="collapse_cf"]/div/table/tbody/tr[4]/td[6]//div/button').click()
print("OK") print("OK")
print("Try to delete call forwarding...", end="") print("Try to delete call forwarding...", end="")
click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[1]/td[8]//a[contains(., "Delete")]') click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[1]/td[8]//a[contains(., "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()
click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[2]/td[8]//a[contains(., "Delete")]') click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[2]/td[8]//a[contains(., "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()
click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[4]/td[8]//a[contains(., "Delete")]') click_js(driver, '//*[@id="preferences_table_cf"]/tbody/tr[4]/td[8]//a[contains(., "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element(By.XPATH, '//*[@id="dataConfirmOK"]').click()
print("OK") print("OK")
print("Go back to CSC Panel Call Fowarding page...", end="") print("Go back to CSC Panel Call Fowarding page...", end="")
logout_panel(driver) logout_panel(driver)
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Forwarding")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-call-forwarding"]')) > 0, "Conference page wasnt opened")
print("OK") print("OK")
filename = 0 filename = 0
@ -716,33 +723,34 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Call Forwarding' page...", end="") print("Go to 'Call Forwarding' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Speed Dial")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Speed Dial")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-speed-dial"]')) > 0, "Speed dial page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]')) > 0, "Speed dial page wasnt opened")
print("OK") print("OK")
print("Try to create a new Speed Dial...", end="") print("Try to create a new Speed Dial...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-speed-dial"]//div/button').click() driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]//div/button').click()
driver.find_element_by_xpath('//*[@id="csc-page-speed-dial"]//div/label').click() driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]//div/label').click()
driver.find_element_by_xpath('/html/body//*[contains(., "*5")]').click() driver.find_element(By.XPATH, '/html/body//*[contains(., "*5")]').click()
fill_element(driver, '//*[@id="csc-page-speed-dial"]//div/label[2]//div/input[@aria-label="Destination"]', "testination") fill_element(driver, '//*[@id="csc-page-speed-dial"]//div/label[2]//div/input[@aria-label="Destination"]', "testination")
click_js(driver, '//*[@id="csc-page-speed-dial"]//button[contains(., "Save")]') click_js(driver, '//*[@id="csc-page-speed-dial"]//button[contains(., "Save")]')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-speed-dial"]//div[contains(., "When I dial *5")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]//div[contains(., "When I dial *5")]')) > 0,
"Speed dial button is not correct") "Speed dial button is not correct")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-speed-dial"]//div[contains(., "testination")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]//div[contains(., "testination")]')) > 0,
"Speed dial destination is not correct") "Speed dial destination is not correct")
print("OK") print("OK")
print("Try to delete the speed dial...", end="") print("Try to delete the speed dial...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-speed-dial"]/div[2]/div/div/div[3]/button').click() driver.find_element(By.XPATH, '//*[@id="csc-page-speed-dial"]/div[2]/div/div/div[3]/button').click()
driver.find_element_by_xpath('/html/body/div[contains(., "Remove")]').click() driver.find_element(By.XPATH, '/html/body/div[contains(., "Remove")]').click()
driver.find_element_by_xpath('/html/body//div//button[contains(., "OK")]').click() driver.find_element(By.XPATH, '/html/body//div//button[contains(., "OK")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-speed-dial"]/div[2]/div[contains(., "No speed dials found")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-speed-dial"]/div[2]/div[contains(., "No speed dials found")]')) > 0,
"Speed dial was not deleted") "Speed dial was not deleted")
filename = 0 filename = 0
@ -755,55 +763,56 @@ class testrun(unittest.TestCase):
print("Try to log in with valid credentials...", end="") print("Try to log in with valid credentials...", end="")
login_csc(driver, "testuser@" + self.domainname, 'testpasswd') login_csc(driver, "testuser@" + self.domainname, 'testpasswd')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful") len(driver.find_elements(By.XPATH, '//*[@id="csc-header-toolbar-main"]')) > 0, "Login wasnt successful")
print("OK") print("OK")
print("Go to 'Call Forwarding' page...", end="") print("Go to 'Call Forwarding' page...", end="")
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click() driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div[contains(., "Call Settings")]').click()
driver.find_element_by_xpath('//*[@id="csc-main-menu-top"]//div/a[contains(., "Voicebox")]').click() time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="csc-main-menu-top"]//div/a[contains(., "Voicebox")]').click()
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]')) > 0, "Conference page wasnt opened") len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]')) > 0, "Conference page wasnt opened")
print("OK") print("OK")
print("Try to enter invalid PIN...", end="") print("Try to enter invalid PIN...", end="")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]'))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]')))
fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "asdf") fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "asdf")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0,
"Wrong PIN has not been detected") "Wrong PIN has not been detected")
print("OK") print("OK")
print("Try to enter valid PIN...", end="") print("Try to enter valid PIN...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click()
fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "12345") fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]', "12345")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[2]/div[5]/div'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[2]/div[5]/div')))
self.assertTrue( self.assertTrue(
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]').get_attribute("value") == "12345", driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change PIN"]').get_attribute("value") == "12345",
"Changed PIN is not correct") "Changed PIN is not correct")
print("OK") print("OK")
print("Try to enter an invalid Email...", end="") print("Try to enter an invalid Email...", end="")
fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test") fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0,
"Wrong Email has not been detected") "Wrong Email has not been detected")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click()
fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test") fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test")
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]//div/i[contains(., "error")]')) > 0,
"Wrong Email has not been detected") "Wrong Email has not been detected")
print("OK") print("OK")
print("Try to enter a valid Email...", end="") print("Try to enter a valid Email...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div/button[contains(., "Undo")]').click()
fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test.com") fill_element(driver, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]', "test@test.com")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//button[contains(., "Save")]').click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[2]/div[5]/div'))) WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[2]/div[5]/div')))
self.assertTrue( self.assertTrue(
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]').get_attribute("value") == "test@test.com", driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div//input[@aria-label="Change Email"]').get_attribute("value") == "test@test.com",
"Changed Email is not correct") "Changed Email is not correct")
print("OK") print("OK")
print("Try to disable 'Attach voicemail to email' setting...", end="") print("Try to disable 'Attach voicemail to email' setting...", end="")
driver.find_element_by_xpath('//*[@id="csc-page-voicebox"]//div[@aria-label="Attach voicemail to email notification"]').click() driver.find_element(By.XPATH, '//*[@id="csc-page-voicebox"]//div[@aria-label="Attach voicemail to email notification"]').click()
wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[3]/div[2]/svg') wait_for_invisibility(driver, '//*[@id="csc-page-voicebox"]/div/div[3]/div[2]/svg')
self.assertTrue( self.assertTrue(
len(driver.find_elements_by_xpath('//*[@id="csc-page-voicebox"]/div/div[5]/div[1]/div[@aria-disabled="true"]')) > 0, len(driver.find_elements(By.XPATH, '//*[@id="csc-page-voicebox"]/div/div[5]/div[1]/div[@aria-disabled="true"]')) > 0,
"Setting was not disabled") "Setting was not disabled")
filename = 0 filename = 0

@ -0,0 +1,69 @@
{
"frozen": {
"app.update.auto": false,
"app.update.enabled": false,
"browser.displayedE10SNotice": 4,
"browser.download.manager.showWhenStarting": false,
"browser.EULA.override": true,
"browser.EULA.3.accepted": true,
"browser.link.open_external": 2,
"browser.link.open_newwindow": 2,
"browser.offline": false,
"browser.reader.detectedFirstArticle": true,
"browser.safebrowsing.enabled": false,
"browser.safebrowsing.malware.enabled": false,
"browser.search.update": false,
"browser.selfsupport.url" : "",
"browser.sessionstore.resume_from_crash": false,
"browser.shell.checkDefaultBrowser": false,
"browser.tabs.warnOnClose": false,
"browser.tabs.warnOnOpen": false,
"datareporting.healthreport.service.enabled": false,
"datareporting.healthreport.uploadEnabled": false,
"datareporting.healthreport.service.firstRun": false,
"datareporting.healthreport.logging.consoleEnabled": false,
"datareporting.policy.dataSubmissionEnabled": false,
"datareporting.policy.dataSubmissionPolicyAccepted": false,
"devtools.errorconsole.enabled": true,
"dom.disable_open_during_load": false,
"extensions.autoDisableScopes": 10,
"extensions.blocklist.enabled": false,
"extensions.checkCompatibility.nightly": false,
"extensions.update.enabled": false,
"extensions.update.notifyUser": false,
"javascript.enabled": true,
"network.manage-offline-status": false,
"network.http.phishy-userpass-length": 255,
"offline-apps.allow_by_default": true,
"prompts.tab_modal.enabled": false,
"security.fileuri.origin_policy": 3,
"security.fileuri.strict_origin_policy": false,
"signon.rememberSignons": false,
"toolkit.networkmanager.disable": true,
"toolkit.telemetry.prompted": 2,
"toolkit.telemetry.enabled": false,
"toolkit.telemetry.rejected": true,
"xpinstall.signatures.required": false,
"xpinstall.whitelist.required": false
},
"mutable": {
"browser.dom.window.dump.enabled": true,
"browser.laterrun.enabled": false,
"browser.newtab.url": "about:blank",
"browser.newtabpage.enabled": false,
"browser.startup.page": 0,
"browser.startup.homepage": "about:blank",
"browser.startup.homepage_override.mstone": "ignore",
"browser.usedOnWindows10.introURL": "about:blank",
"dom.max_chrome_script_run_time": 30,
"dom.max_script_run_time": 30,
"dom.report_all_js_exceptions": true,
"javascript.options.showInConsole": true,
"network.captive-portal-service.enabled": false,
"security.csp.enable": false,
"startup.homepage_welcome_url": "about:blank",
"startup.homepage_welcome_url.additional": "about:blank",
"webdriver_accept_untrusted_certs": true,
"webdriver_assume_untrusted_issuer": true
}
}
Loading…
Cancel
Save