2016-10-31 10 views
2

イム:セレンのpythonのドロップダウンから値を選択することができませんドロップダウンから値を選択しようとしている

<select name="ctl00$ContentPlaceHolder1$_ddl_sheet_name" id="ctl00_ContentPlaceHolder1__ddl_sheet_name"> 
     <option selected="selected" value="0">--Select--</option> 
     <option value="tbl_E_RATES">E RATES</option> 
     <option value="tbl_F_RATES">F RATES</option> 
     <option value="tbl_B_RATES">B RATES</option> 

    </select> 

しかし、これらのコマンドはどれも機能していない

driver.find_element_by_css_selector("select#ctl00$ContentPlaceHolder1$_ddl_sheet_name > option[value='B_RATES']").click() 

driver.find_element_by_xpath("//select[@id='ctl00_ContentPlaceHolder1__ddl_sheet_name']/option[text()='B RATES']").click() 

driver.find_element_by_css_selector("select#ctl00_ContentPlaceHolder1__ddl_sheet_name > option[value='B_RATES']").click() 

ERROR: -

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//select[@id='ctl00_ContentPlaceHolder1__ddl_sheet_name']/option[text()='B RATES']"} 

答えて

2

B_RATESoptionのリンクテキストではなく、それはvalueです(値はtbl_B_RATES)。この方法を試してください。

driver.find_element_by_xpath('//select/option[text()="B RATES"]').click() 

UPDATE

NoSuchElementException問題は、ページのレンダリング完了遅延によって発生する可能性があります。 iframeの内側に

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

WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, '//select/option[text()="B RATES"]'))).click() 

UPDATE 2

ターゲット]ドロップダウンメニューなので、あなたが最初にそれに切り替え、その後、必要な要素を処理する必要があります:要素がページ上に存在するまで待機するExplicit waitをお試しください:

driver.switch_to_frame(driver.find_element_by_xpath('//iframe[@src="http://rate.poultrybazaar.net/show_rates.aspx"]')) 
driver.find_element_by_xpath('//select/option[text()="BROILER RATES (WEST BENGAL)"]').click() # Replace text with required value 
driver.switch_to_default_content() # to quit from iframe 
+1

同じエラー "NoSuchElementException" – shalini

+1

新しいコードで "TimeoutException:Message:"が表示されます。これはページです。http://www.poultrybazaar.net/poultryrates/daily-rates/「シート名」、「年」、「月」=「賃貸料」、「2012」、「1月」を選択する必要があります。 " – shalini

+0

新しいアップデートを確認してください。これはうまくいくようです – Andersson

関連する問題