TT#79804 don't break lines on xpath

* create Functions.step to reduce code

Change-Id: Ie2b1994478710a18e258e73bbc089a473d57c607
changes/24/39724/4
Victor Seva 6 years ago
parent 0eb65cf3e5
commit 220b59ede7

@ -1,12 +1,6 @@
import os import os
import random import random
import time
from functions import Functions from functions import Functions
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
def login_csc(driver, name, pwd): def login_csc(driver, name, pwd):
@ -22,8 +16,7 @@ def login_csc(driver, name, pwd):
def logout_csc(driver): def logout_csc(driver):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(driver, '//*[@id="csc-header-toolbar"]/div[1]/button')
By.XPATH, '//*[@id="csc-header-toolbar"]/div[1]/button')))
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="csc-header-toolbar"]/div[1]/button').click() '//*[@id="csc-header-toolbar"]/div[1]/button').click()
driver.find_element_by_xpath( driver.find_element_by_xpath(
@ -48,14 +41,13 @@ def logout_panel(driver):
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(( Functions.step(
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@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(( Functions.step(driver, '//*[@id="contactidtable"]//tr[1]//td/input')
By.XPATH, '//*[@id="contactidtable"]//tr[1]//td/input')))
Functions.scroll_to_element( Functions.scroll_to_element(
driver, '//*[@id="contactidtable"]//tr[1]//td/input') driver, '//*[@id="contactidtable"]//tr[1]//td/input')
driver.find_element_by_xpath( driver.find_element_by_xpath(
@ -73,8 +65,8 @@ def create_customer(driver, name=None):
def delete_customer(driver, name): def delete_customer(driver, name):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element_by_link_text('Customers').click()
@ -85,18 +77,16 @@ def delete_customer(driver, name):
'#Customer_table tr > td.dataTables_empty') '#Customer_table tr > td.dataTables_empty')
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="Customer_table_filter"]//input', name) driver, '//*[@id="Customer_table_filter"]//input', name)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td' driver, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % name)
'[text()="%s"]' % name)))
Functions.click_js( Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),' driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Terminate")]')
' "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(( Functions.step(
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element_by_link_text('Customers').click()
@ -107,17 +97,14 @@ def create_subscriber(driver, customername, domainname):
'#Customer_table tr > td.dataTables_empty') '#Customer_table tr > td.dataTables_empty')
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="Customer_table_filter"]//input', customername) driver, '//*[@id="Customer_table_filter"]//input', customername)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td' driver, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername)
'[text()="%s"]' % customername)))
Functions.click_js( Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),' driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]')
' "Details")]')
driver.find_element_by_link_text('Expand Groups').click() driver.find_element_by_link_text('Expand Groups').click()
Functions.scroll_to_element(driver, 'Subscribers') Functions.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.element_to_be_clickable( Functions.step(driver, '//*[@id="domainidtable_paginate"]/a[4]')
(By.XPATH, '//*[@id="domainidtable_paginate"]/a[4]')))
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="domainidtable_filter"]//input', driver, '//*[@id="domainidtable_filter"]//input',
'thisshouldnotexist') 'thisshouldnotexist')
@ -125,9 +112,8 @@ def create_subscriber(driver, customername, domainname):
'#domainidtable tr > td.dataTables_empty') '#domainidtable tr > td.dataTables_empty')
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="domainidtable_filter"]//input', domainname) driver, '//*[@id="domainidtable_filter"]//input', domainname)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="domainidtable"]//tr[1]//td' driver, '//*[@id="domainidtable"]//tr[1]//td[text()="%s"]' % domainname)
'[text()="%s"]' % domainname)))
Functions.click_js( Functions.click_js(
driver, '//*[@id="domainidtable"]/tbody/tr[1]/td[4]/input') driver, '//*[@id="domainidtable"]/tbody/tr[1]/td[4]/input')
driver.find_element_by_xpath( driver.find_element_by_xpath(
@ -142,8 +128,8 @@ def create_subscriber(driver, customername, domainname):
def delete_subscriber(driver, customername): def delete_subscriber(driver, customername):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]'))) driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click() driver.find_element_by_link_text('Customers').click()
@ -154,31 +140,26 @@ def delete_subscriber(driver, customername):
'#Customer_table tr > td.dataTables_empty') '#Customer_table tr > td.dataTables_empty')
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="Customer_table_filter"]//input', customername) driver, '//*[@id="Customer_table_filter"]//input', customername)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td' driver, '//*[@id="Customer_table"]//tr[1]//td[text()="%s"]' % customername)
'[text()="%s"]' % customername)))
Functions.click_js( Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),' driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(), "Details")]')
' "Details")]')
driver.find_element_by_link_text('Expand Groups').click() driver.find_element_by_link_text('Expand Groups').click()
Functions.scroll_to_element(driver, 'Subscribers') Functions.scroll_to_element(driver, 'Subscribers')
Functions.click_js( Functions.click_js(
driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), ' driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), "Terminate")]')
'"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.element_to_be_clickable(( Functions.step(driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@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.element_to_be_clickable(( Functions.step(driver, '//*[@id="reselleridtable"]//tr[1]/td[5]/input')
By.XPATH, '//*[@id="reselleridtable"]//tr[1]/td[5]/input')))
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="reselleridtable"]//tr[1]/td[5]/input').click() '//*[@id="reselleridtable"]//tr[1]/td[5]/input').click()
Functions.fill_element(driver, '//*[@id="domain"]', name) Functions.fill_element(driver, '//*[@id="domain"]', name)
@ -187,8 +168,7 @@ def create_domain(driver, name=None):
def delete_domain(driver, name): def delete_domain(driver, name):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(driver, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')
By.XPATH, '//*[@id="main-nav"]//*[contains(text(),"Settings")]')))
driver.find_element_by_xpath( driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click() '//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Domains').click() driver.find_element_by_link_text('Domains').click()
@ -199,9 +179,8 @@ def delete_domain(driver, name):
'#Domain_table tr > td.dataTables_empty') '#Domain_table tr > td.dataTables_empty')
Functions.fill_element( Functions.fill_element(
driver, '//*[@id="Domain_table_filter"]//input', name) driver, '//*[@id="Domain_table_filter"]//input', name)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(( Functions.step(
By.XPATH, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name))) driver, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name)
Functions.click_js( Functions.click_js(
driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(),' driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(), "Delete")]')
' "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click() driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click()

@ -1,7 +1,5 @@
import os
from selenium import webdriver from selenium import webdriver
from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
@ -44,10 +42,16 @@ def create_driver():
def wait_for_loading_screen(driver): def wait_for_loading_screen(driver):
xpath = '//div[@class="q-loading animate-fade fullscreen column flex-center z-maxundefined"]/svg[@class="q-spinner q-spinner-mat text-white"]'
driver.implicitly_wait(1) driver.implicitly_wait(1)
for i in range(1, 5): for i in range(1, 5):
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located(( step(driver, xpath, inv=True)
By.XPATH, '//div[@class="q-loading animate-fade fullscreen column '
'flex-center z-maxundefined"]/svg[@class="q-spinner q-spinner-mat '
'text-white"]')))
driver.implicitly_wait(10) driver.implicitly_wait(10)
def step(driver, xpath, wait=10, inv=False):
if inv:
ec = EC.invisibility_of_element_located
else:
ec = EC.element_to_be_clickable
WebDriverWait(driver, wait).until(ec((By.XPATH, xpath)))

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save