2016-07-30 6 views
1

Ich versuche, das Jahr 1989 in der Dropdown-Liste auf dieser Anmeldeseite auszuwählen.Kann keinen Wert aus einer Dropdown-Liste mit Selenium in Python auswählen

Ich benutze Chrome als Browser und im Moment sagt es, dass es das Element nicht finden kann.

Hier ist die HTML, aber wenn Sie etwas mehr/anders brauchen, habe ich den Link zur Website im Einsatz. Ps. Kein professioneller Programmierer oder irgendetwas Super-Duper-Scrub, wenn es um die Codierung geht.

<div class="custom-select-wrapper" style="visibility: visible;"><select class="year" style="display: none;"><option value="1936">1936</option><option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option><option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option><option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option><option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option><option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option><option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option><option value="2002">2002</option><option value="2003">2003</option><option value="2004">2004</option><option value="2005">2005</option><option value="2006">2006</option><option value="2007">2007</option><option value="2008">2008</option><option value="2009">2009</option><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option><option value="2013">2013</option><option value="2014">2014</option><option value="2015">2015</option><option value="2016" selected="">2016</option></select><div class="custom-select-menu" tabindex="0"><label class="styled-select button-black opened">2016</label><div class="custom-scrollbar custom-select-scrollbar" style="height: 200px; display: block;"><div class="viewport"><ul data-select-name="undefined" class="overview"><li data-option-value="2016" class="selected">2016</li><li data-option-value="2015" class="">2015</li><li data-option-value="2014" class="">2014</li><li data-option-value="2013" class="">2013</li><li data-option-value="2012" class="">2012</li><li data-option-value="2011" class="">2011</li><li data-option-value="2010" class="">2010</li><li data-option-value="2009" class="">2009</li><li data-option-value="2008" class="">2008</li><li data-option-value="2007" class="">2007</li><li data-option-value="2006" class="">2006</li><li data-option-value="2005" class="">2005</li><li data-option-value="2004" class="">2004</li><li data-option-value="2003" class="">2003</li><li data-option-value="2002" class="">2002</li><li data-option-value="2001" class="">2001</li><li data-option-value="2000" class="">2000</li><li data-option-value="1999" class="">1999</li><li data-option-value="1998" class="">1998</li><li data-option-value="1997" class="">1997</li><li data-option-value="1996" class="">1996</li><li data-option-value="1995" class="">1995</li><li data-option-value="1994" class="">1994</li><li data-option-value="1993" class="">1993</li><li data-option-value="1992" class="">1992</li><li data-option-value="1991" class="">1991</li><li data-option-value="1990" class="">1990</li><li data-option-value="1989" class="">1989</li><li data-option-value="1988" class="">1988</li><li data-option-value="1987" class="">1987</li><li data-option-value="1986" class="">1986</li><li data-option-value="1985" class="">1985</li><li data-option-value="1984" class="">1984</li><li data-option-value="1983" class="">1983</li><li data-option-value="1982" class="">1982</li><li data-option-value="1981" class="">1981</li><li data-option-value="1980" class="">1980</li><li data-option-value="1979" class="">1979</li><li data-option-value="1978" class="">1978</li><li data-option-value="1977" class="">1977</li><li data-option-value="1976" class="">1976</li><li data-option-value="1975" class="">1975</li><li data-option-value="1974" class="">1974</li><li data-option-value="1973" class="">1973</li><li data-option-value="1972" class="">1972</li><li data-option-value="1971" class="">1971</li><li data-option-value="1970" class="">1970</li><li data-option-value="1969" class="">1969</li><li data-option-value="1968" class="">1968</li><li data-option-value="1967" class="">1967</li><li data-option-value="1966" class="">1966</li><li data-option-value="1965" class="">1965</li><li data-option-value="1964" class="">1964</li><li data-option-value="1963" class="">1963</li><li data-option-value="1962" class="">1962</li><li data-option-value="1961" class="">1961</li><li data-option-value="1960" class="">1960</li><li data-option-value="1959" class="">1959</li><li data-option-value="1958" class="">1958</li><li data-option-value="1957" class="">1957</li><li data-option-value="1956" class="">1956</li><li data-option-value="1955" class="">1955</li><li data-option-value="1954" class="">1954</li><li data-option-value="1953" class="">1953</li><li data-option-value="1952" class="">1952</li><li data-option-value="1951" class="">1951</li><li data-option-value="1950" class="">1950</li><li data-option-value="1949" class="">1949</li><li data-option-value="1948" class="">1948</li><li data-option-value="1947" class="">1947</li><li data-option-value="1946" class="">1946</li><li data-option-value="1945" class="">1945</li><li data-option-value="1944" class="">1944</li><li data-option-value="1943" class="">1943</li><li data-option-value="1942" class="">1942</li><li data-option-value="1941" class="">1941</li><li data-option-value="1940" class="">1940</li><li data-option-value="1939" class="">1939</li><li data-option-value="1938" class="">1938</li><li data-option-value="1937" class="">1937</li><li data-option-value="1936" class="">1936</li></ul></div></div><input type="hidden" name="undefined" value="2016"></div></div> 
+1

Könnten Sie Ihre Ausnahme und HTML als auch teilen .. –

Antwort

0

Sie können tatsächlich vermeiden mit dem Datumsauswahl in erster Linie zu tun und stellen Sie das „Geburtsdatum“ direkt im Eingang. Dafür können wir die Eigenschaft readonly von der Eingabe "Geburtsdatum" und replace the element with it's clone to remove all event listeners entfernen, was dazu beitragen würde, dass der Datepicker nicht an die Eingabe gebunden wird.

Werke für mich:

from selenium import webdriver 


driver = webdriver.Firefox() 
driver.get("https://club.pokemon.com/us/pokemon-trainer-club/sign-up/") 

elem = driver.find_element_by_id("id_dob") 
driver.execute_script("arguments[0].removeAttribute('readonly'); arguments[0].removeAttribute('class');", elem) 
driver.execute_script(""" 
var clone = arguments[0].cloneNode(); 
while (arguments[0].firstChild) { 
    clone.appendChild(arguments[0].lastChild); 
} 
arguments[0].parentNode.replaceChild(clone, arguments[0]); 
""", elem) 

elem = driver.find_element_by_id("id_dob") 
elem.clear() 
elem.send_keys("1989-02-20") 
+0

Vielen Dank dieses gearbeitet :) –

Verwandte Themen