I am using selenium in python
I am searching for specific text on webpage then I display the text of coresponding web element
This code works alright
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--log-level=3")
driver = webdriver.Chrome(options=chrome_options)
url = 'https://tophunt.in/amazon-quiz-14-march-2021/'
driver.get(url)
sourcecode = driver.page_source
if 'Answer 1' in sourcecode:
print('Answer 1 text found in source code of webpage')
answeroneele = driver.find_elements_by_xpath("//*[contains(text(), 'Answer 1')]")
print(len(answeroneele), 'having Answer 1')
input('wait')
for elements in answeroneele:
full_answer = elements.get_attribute('textContent')
print(full_answer)
driver.quit()
But if I use variable in searching web element then I get 553 elements that match . Looks like whole web page got printed. The code is
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--log-level=3")
driver = webdriver.Chrome(options=chrome_options)
url = 'https://tophunt.in/amazon-quiz-14-march-2021/'
driver.get(url)
sourcecode = driver.page_source
str_to_search = 'Answer 1'
if 'Answer 1' in sourcecode:
print('Answer 1 text found in source code of webpage')
answeroneele = driver.find_elements_by_xpath("//*[contains(text(), str_to_search)]")
print(len(answeroneele), 'having Answer 1')
input('wait')
for elements in answeroneele:
full_answer = elements.get_attribute('textContent')
print(full_answer)
driver.quit()
Why this happens?
Thanks.