What Is The Difference Here That Prevents This From Working?
I'm reading a list of customer names and using each to find an element. Before reading the list, I make can confirm this works when I hard-code the name, datarow = driver.find_
Solution 1:
Possibly the list elements e.g. customer, includes leading or trailing white spaces. So when you print through print()
statement you are overseeing those.
But when you use the xpath as:
datarow = driver.find_element_by_xpath("//span[contains(text(),'"+customer+"')]")
Those whitespaces comes into play and no matches are found.
Solution
You can use the following solution:
datarow = driver.find_element_by_xpath("//span[contains(.,'"+customer+"')]")
Ideally, to locate the element you need to induce WebDriverWait for the visibility_of_element_located()
and you can use the following Locator Strategy:
datarow = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[contains(.,'"+customer+"')]")))
Post a Comment for "What Is The Difference Here That Prevents This From Working?"