I'm trying to scrape the following website link
I need to automate the following steps:
1) Select the correct drop down table (the first on the left you see un the image below).
2) Select an option from the drop down menu (Caraibi option).
3) Click on the search button.
Drop down images: The first on the left ("Dove vuoi andare?").
The HTML code is the following one:
<select name="ctl00$ctl00$ctl00$ctl37$g_7e88f2a7_c220_4ba6_8ca8_49ca1297d22a$cruiseFinderControl$ddl_MacroArea" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ctl00$ctl00$ctl37$g_7e88f2a7_c220_4ba6_8ca8_49ca1297d22a$cruiseFinderControl$ddl_MacroArea\',\'\')', 0)" id="ctl00_ctl00_ctl00_ctl37_g_7e88f2a7_c220_4ba6_8ca8_49ca1297d22a_cruiseFinderControl_ddl_MacroArea" class="ddlMacroArea" tabindex="0">
<option selected="selected" value="">Tutte le destinazioni</option>
<option value="NORTHERN CAPITALS">Capitali Nordiche</option>
<option value="EASTERN CARIBBEAN">Caraibi</option>
<option value="MAR ROSSOARAB">Dubai/Emirati Arabi</option>
<option value="NORWEGIAN FJORDS">Fiordi, Spitzbergen e Islanda</option>
<option value="PACIFIC OCEAN">Giro del Mondo</option>
<option value="WEST MEDITERRANEAN">Mediterraneo Occidentale</option>
<option value="EAST MEDITERRANEAN">Mediterraneo Orientale</option>
<option value="ATLANTIC OCEAN">Oceano Atlantico/Canarie</option>
<option value="INDIAN OCEAN">Oceano Indiano, Maldive, Mauritius</option>
<option value="ORIENTAL LANDS">Oriente</option>
<option value="SOUTH AMERICA">Sud America</option>
<option value="TRANSATLANTIC">Transatlantiche</option>
</select>
Well I'm using this code:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time
driver = webdriver.Chrome('path/to/the/driver.exe')
driver.get('https://www.costacrociere.it/B2C/I/Pages/Default.aspx')
driver.set_window_size(800, 660)
time.sleep(2)
select=Select(driver.find_element_by_id("ctl00_ctl00_ctl00_ctl37_g_7e88f2a7_c220_4ba6_8ca8_49ca1297d22a_cruiseFinderControl_ddl_MacroArea"))
#view of the grappled options
select.options
So until here i can get all the options (this is a part of them):
[<selenium.webdriver.remote.webelement.WebElement
(session="7978296e5858040f56f27f3414087c60", element="0.7352996272394383-2")>,
<selenium.webdriver.remote.webelement.WebElement
(session="7978296e5858040f56f27f3414087c60", element="0.7352996272394383-3")>,
<selenium.webdriver.remote.webelement.WebElement
(session="7978296e5858040f56f27f3414087c60", element="0.7352996272394383-4")>
So when I try to select the option by visible text, for example 'Caraibi' I get the following error:
# select by visible text
select.select_by_visible_text('Caraibi')
OUT: ElementNotVisibleException: element not visible: Element is nocurrently
visible and may not be manipulated(Session info: chrome=63.0.3239.132)
(Driver info: chromedriver=2.33.506120
(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1
x86_64)
Thanks for your help!!!