The problem I am having with my code is that the title is never printed or stored. When I run the chromium web driver separately, I can get the title of the element just fine. So I don't think there is a problem with the element itself.
Here is the code:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(ChromeDriverManager().install(), options = options)
driver.get('https://carverlib.ent.sirsi.net/client/en_US/default/search/results?qf=ITYPE%09Material+Type%091%3AADULT-BOOK%09Adult+Book&av=0&isd=true')
for i in range(0,11):
try:
print("Clicking on element "+ str(i))
driver.find_element_by_xpath(f'//*[@id="detailLink{i}"]').click()
print("Located element")
print(driver.find_element_by_xpath(f'//*[@id="detail_biblio{i}"]/div[1]/div/div/div[2]').text)
WebDriverWait(driver,30).until(lambda x: x.execute_script("""return document.querySelectorAll('[title="Close"]')[0]"""))
driver.execute_script("""document.querySelectorAll('[title="Close"]')[document.querySelectorAll('[title="Close"]').length - 1].click();""")
print("Closed element")
except:
WebDriverWait(driver,30).until(lambda x: x.execute_script("""return document.querySelectorAll('[title="Close"]')[0]"""))
driver.execute_script("""document.querySelectorAll('[title="Close"]')[document.querySelectorAll('[title="Close"]').length - 1].click();""")
Here is the output:
Clicking on element 0 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 1 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 2 <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 3 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 4 <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 5 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 6 <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 7 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 8 <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 9 Located element <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> Clicking on element 10 <selenium.webdriver.remote.webelement.WebElement (session="bae6dfbc7cafe80a0cd5b96a94e2c8c6", element="95101708-1180-46e4-bd86-1821455c2bbf")> >>>
Thanks for your assistance!