2016-07-10 12 views
-4

ich mag aus einem Drop-Down-Menüoption auszuwählen, für das ich verwende, dass:Python Selen im Dropdown-Menü klicken

br.find_element_by_xpath("//*[@id='adyen-encrypted-form']/fieldset/div[3]/div[2]/div/div/div/div/div[2]/div/ul/li[5]/span").click() 

Option Monat 4 zu wählen, aber wenn ich tue, um diese pyhton Rückkehr Fehlermeldung:

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible (Session info: chrome=51.0.2704.103) (Driver info: chromedriver=2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a),platform=Mac OS X 10.11.5 x86_64)

das ist der HTML-Code:

</div> 
    <div class="form-row exp-date clearfix fancyform"> 
    <div class="formfield expired-label monthcaption"> 
    <label>Date d'expiration <span>*</span></label> 
</div> 
<div class="formfield month"> 
<div class="value value-select"> 
<select class="selectbox required" id="dwfrm_adyenencrypted_expiryMonth" data-missing-error="Veuillez sélectionner le mois d'expiration" data-parse-error="Ce contenu est invalide" data-range-error="Ce contenu est trop long ou trop court" data-value-error="Cette date d'expiration est invalide" pattern="^(:?0[1-9]|1[0-2])$" required="required" > 
    <option class="selectoption" label="Mois" value="">Mois</option> 
    <option class="selectoption" label="01" value="01">01</option> 
    <option class="selectoption" label="02" value="02">02</option> 
    <option class="selectoption" label="03" value="03">03</option> 
    <option class="selectoption" label="04" value="04">04</option> 
    <option class="selectoption" label="05" value="05">05</option> 
    <option class="selectoption" label="06" value="06">06</option> 
    <option class="selectoption" label="07" value="07">07</option> 
    <option class="selectoption" label="08" value="08">08</option> 
    <option class="selectoption" label="09" value="09">09</option> 
    <option class="selectoption" label="10" value="10">10</option> 
    <option class="selectoption" label="11" value="11">11</option> 
    <option class="selectoption" label="12" value="12">12</option> 
</select> 

Was ist falsch? Ich weiß, Selen kann das Element nicht finden, aber ich weiß nicht warum, Xpath falsch? Ich muss andere Methode verwenden, um Element zu finden? Dank für anwsers

+1

Willkommen Überlauf Stack! Was hast du probiert und was war das Ergebnis? Bitte lesen Sie die Hilfethemen, um eine gute Frage zu stellen. Sie müssen Ihr eigenes Problem recherchieren, Codebeispiele finden usw. und Ihren eigenen Code schreiben, um das Problem zu lösen. Wenn Sie all das tun und es immer noch nicht herausfinden können, dann kommen Sie zurück und editieren Sie Ihre Frage und fügen Sie Notizen aus der Forschung hinzu, die Sie gemacht haben. Der Code, den Sie versucht haben, wurde reduziert auf [mcve] und was das Ergebnis war ... Alle Fehlermeldungen usw. Es ist auch sehr wichtig, dass Sie alle relevanten HTML-Dateien einfügen und HTML und Code korrekt formatieren. – JeffC

Antwort

0

Sie sollten Select() verwenden eine Option aus Dropdown wie unten wählen: -

from selenium.webdriver.support.ui import Select 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

wait = WebDriverWait(driver, 10) 


element = wait.until(EC.visibility_of_element_located((By.ID, "dwfrm_adyenencrypted_expiryMonth"))) 

select = Select(element) 
select.select_by_value("04") 

Herausgegeben: - Wenn leider oben nicht, dass Sie auch .execute_script() wie unten verwenden, können nicht funktioniert versuchen: -

wait = WebDriverWait(driver, 10) 


element = wait.until(EC.presence_of_element_located((By.ID, "dwfrm_adyenencrypted_expiryMonth"))) 

driver.execute_script("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].value == arguments[1]){ select.options[i].selected = true; } }", element, "04") 

Hoffe, es funktioniert ... :)

+0

Ich versuche es aber python diese Fehlermeldung zurückzugeben: selenium.common.exceptions.ElementNotVisibleException: Nachricht: Element nicht sichtbar: Element ist derzeit nicht sichtbar und darf nicht manipuliert werden (Sitzungsinfo: chrome = 51.0.2704.103) (Treiberinfo : chromedriver = 2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a), plattform = Mac OS X 10.11.5 x86_64) –

+0

@robin Versuchen Sie es mit '.execute_script()' und lassen Sie es mich wissen ... siehe bearbeitete Antwort –

+0

@robinMistr oder versuchen Sie es mit warten bis Auswahlbox sichtbar mit 'Webdriverwait' ... –