Development

Recently I have implemented parallel selenium UI test execution by increasing Jenkins node count and creating multiple Jenkins jobs with different regression.xml files pointing to them.
In a nutshell in a single server, there are multiple browser windows open and start test execution.
Previously, we use just a one Jenkins node, so any given time there will only one browser instance running in the test server.
The problem I’m having is, we are having many failures with the Parallel execution when compared to old (sequential) execution.
I believe this happens because when multiple browsers are open in the same server, element focus might be change time to time.
And I got this type of exceptions most of the time.
org.openqa.selenium.ElementClickInterceptedException: element click intercepted:

So is this the normal behavior with multiple browser test in the same server, or is this something we can fix by having a code level improvements?

We have a webapp which is an ecommerce site, and we have another web app (data migration tool) whose main purpose is to bulk upload data to the ecommerce site.
We then have 3 environments we can deploy these web apps to. One is production, one is Staging, and last one is test environment.
My issue is that on Staging, we do regression test of the ecommerce site there but they also want the data migration tool be tested on the same environment.
I think this is wrong and told them it could lead to us not being sure if there is really a regression on the ecommerce site or the data migration tool is the problem. They argue that we just don’t do it simultaneously and it should be fine, which I still think may pose some problems or inefficiencies in the future.
I’m looking for arguments that can support my side so they’d agree that it’d be best to do the migration tool testing on a separate environment.
This migration tool btw is planned to be used around twice a month in case this is relevant.

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import random
import select

driver = webdriver.Chrome(‘ChromeDriver’)
driver.get(“https://devbusiness.tunai.io/login”)
time.sleep(2)
driver.maximize_window()

#log in credentials
username = driver.find_element(By.NAME, “loginUsername”);
username.send_keys(“dayon@tunai”);

password = driver.find_element(By.NAME, “loginPassword”);
password.send_keys(“12341234″);

login = driver.find_element(By.XPATH,”//*[@id=’app’]/div/div/div/div/div/div[2]/form/div[4]/button”);
login.submit();
time.sleep(3)

driver.get(“https://devbusiness.tunai.io/dashboard/my_salon_user”)
time.sleep(3)

randomUsername = random.choice([“dayon.salon3@tunai”,”dayonmanager@tunai”,”Dayon.der@tunai”])
driver.find_element(By.XPATH, “//tbody[@role=’rowgroup’]/tr[@role=’row’]/td/a[text()='”+ randomUsername +”‘]”).click()
print(“Username selected: “, randomUsername)
time.sleep(5)

driver.find_element(By.XPATH,”//*[@id=’page-content’]/div/div[3]/div/div[2]/div/div/div[2]/div/div[1]/header/a”).click()
time.sleep(5)

# Get the list of elements
elements = driver.find_elements(By.CLASS_NAME,’custom-control-input’)

# Select a random element from the list
random_element = random.choice(elements)
driver.execute_script(“arguments[0].click();”, random_element)

# Click on the selected element
random_element.click()
print(“Element selected: “, random_element)
time.sleep(5)

driver.find_element(By.XPATH,”//*[@id=’accKey’]”).click()
time.sleep(5)

I’ve been add “argument.click[]”,”webdriver wait until EC to be clickable” but still showing “Element not intractable. What would be the other possible solution? Hope someone could clarify for me. Thanks and have a nice day.

The DistroWatch news feed is brought to you by TUXEDO COMPUTERS. The Linux Mint project has published a new beta release for the upcoming launch of Linux Mint 22. The beta snapshot includes several adjustments and a few new programs, including some which replace discontinued GNOME features or support. “An updated package base doesn’t just bring new technology, it….

kal is a package for finding public holidays, easter, notable days, equinoxes, solstices and flag flying days. The post kal…