I'm trying to use selenium webdriver to locate an element in html
size_element = driver.find_element(By.XPATH,"//span[text()= 'XL']")
The above works.
However, if I tried to represent "XL" with a string variable like below, it won't work.
size = "XL"
size_element = driver.find_element(By.XPATH,"//span[text()= f'{size}']")
similarly, the below don't work either:
size_element = driver.find_element(By.XPATH,"//span[text()= {}]".format(size)
size_element = driver.find_element(By.XPATH,"//span[text()= %s]"%size)
cruisepandey
29.5k6 gold badges23 silver badges43 bronze badges
2 Answers 2
"F-strings provide a way to embed expressions inside string literals, using a minimal syntax. It should be noted that an f-string is really an expression evaluated at run time, not a constant value.
The below should work:
size = "XL"
size_element = driver.find_element(By.XPATH, f"//span[text()= {size}]")
answered Feb 22, 2022 at 4:02
cruisepandey
29.5k6 gold badges23 silver badges43 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
You should try:
size_element = driver.find_element(By.XPATH,f'//span[text()= {size}]')
cruisepandey
29.5k6 gold badges23 silver badges43 bronze badges
Comments
default
fis in the wrong place. It needs to be at the beginning of the outer string:f"//span..."