TT#70901 selenium: fix crashes when creating/deleting elements

- first check if settings button is clickable before clicking it
- replace move_and_click with click_js. this will also remove the
move_and_click function, since it was almost never used.

Change-Id: I5d4a7fbf7f900ac6e8f1ade5e32033790f8cd753
changes/94/37794/2
Nico Schedel 5 years ago
parent e1948444c0
commit a017a40993

@ -48,6 +48,8 @@ def logout_panel(driver):
def create_customer(driver, name=None):
if not name:
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")]')))
driver.find_element_by_xpath(
'//*[@id="main-nav"]//*[contains(text(),"Settings")]').click()
driver.find_element_by_link_text('Customers').click()
@ -71,6 +73,8 @@ def create_customer(driver, name=None):
def delete_customer(driver, name):
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_link_text('Customers').click()
@ -84,13 +88,15 @@ def delete_customer(driver, name):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td'
'[text()="%s"]' % name)))
Functions.move_and_click(
Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),'
' "Terminate")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click()
def create_subscriber(driver, customername, domainname):
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_link_text('Customers').click()
@ -104,7 +110,7 @@ def create_subscriber(driver, customername, domainname):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td'
'[text()="%s"]' % customername)))
Functions.move_and_click(
Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),'
' "Details")]')
driver.find_element_by_link_text('Expand Groups').click()
@ -136,6 +142,8 @@ def create_subscriber(driver, customername, domainname):
def delete_subscriber(driver, customername):
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_link_text('Customers').click()
@ -149,12 +157,12 @@ def delete_subscriber(driver, customername):
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((
By.XPATH, '//*[@id="Customer_table"]//tr[1]//td'
'[text()="%s"]' % customername)))
Functions.move_and_click(
Functions.click_js(
driver, '//*[@id="Customer_table"]//tr[1]//td//a[contains(text(),'
' "Details")]')
driver.find_element_by_link_text('Expand Groups').click()
Functions.scroll_to_element(driver, 'Subscribers')
Functions.move_and_click(
Functions.click_js(
driver, '//*[@id="subscribers_table"]//tr[1]//td//a[contains(text(), '
'"Terminate")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click()
@ -163,6 +171,8 @@ def delete_subscriber(driver, customername):
def create_domain(driver, name=None):
if not name:
name = 'domain' + str(random.randint(1, 100000)) + 'test'
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_link_text('Domains').click()
@ -177,6 +187,8 @@ def create_domain(driver, name=None):
def delete_domain(driver, name):
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_link_text('Domains').click()
@ -189,7 +201,7 @@ def delete_domain(driver, name):
driver, '//*[@id="Domain_table_filter"]//input', name)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((
By.XPATH, '//*[@id="Domain_table"]//tr[1]//td[text()="%s"]' % name)))
Functions.move_and_click(
Functions.click_js(
driver, '//*[@id="Domain_table"]//tr[1]//td//a[contains(text(),'
' "Delete")]')
driver.find_element_by_xpath('//*[@id="dataConfirmOK"]').click()

@ -23,16 +23,6 @@ def scroll_to_element(driver, element):
driver.execute_script("arguments[0].scrollIntoView();", webelem)
def move_and_click(driver, element):
webelement = driver.find_element_by_xpath(element)
hoverclick = ActionChains(driver)
hoverclick.move_to_element_with_offset(
driver.find_element_by_xpath('/html/body'), 100, 100)
hoverclick.move_to_element(webelement)
hoverclick.click()
hoverclick.perform()
def click_js(driver, element):
if element[:1] == "/":
webelement = driver.find_element_by_xpath(element)

Loading…
Cancel
Save