[英]How to select dropdown menu in python using Selenium
我想知道如何從網站的下拉列表中選擇選項。
html在這里
<thead>
<td style="width: 40%;">
<select name="product_size" id="sct-size" data-md-selectize>
<option value="-">Choose Size</option>
<option value="323">XS</option>
<option value="324">S</option>
<option value="325">M</option>
<option value="326">L</option>
<option value="327">XL</option>
<option value="328">XXL</option>
<option value="342">1 years old</option>
<option value="343">5 years old</option>
<option value="344">8 years old</option>
<option value="345">12 years old</option>
</select>
</td>
<td style="width: 40%;">
<select name="product_color" id="sct-color" data-md-selectize>
<option value="-">Choose Color</option>
<option value="594">N/A</option>
</select>
</td>
<td style="width: 19%;"><input type="text" class="md-input" name="product_stock_" id="inp-stock" placeholder="Stock" style="margin-top: -11px;text-align: center;"/></td>
<td style="width: 1%;"><a href="#" id="btn-addstock" style="margin-top: 5px; display: block;" title="Add Stock"><i class="material-icons"></i></a></td>
</thead>
我想選擇“選擇大小”,然后選擇“ S”選項。 我嘗試了這段代碼。
from selenium import webdriver
from selenium.webdriver.support.select import Select
mySelect = Select(driver.find_element_by_id("sct-size"))
mySelect.select_by_visible_text("S")
但是得到了錯誤
NoSuchElementException:消息:無法找到帶有可見文本的元素:S
我已經在stackoverflow上找到了很多關於此問題的解決方案。 它假定從下拉菜單中選擇“ S”,但沒有選擇。 我不知道我還能嘗試什么。
謝謝。
已經嘗試過
我也試過
mySelect = Select(driver.find_element_by_id("sct-size"))
mySelect.select_by_value("323")
但是得到這個錯誤
NoSuchElementException:消息:無法找到具有值:323的選項
我也嘗試使用名稱更改find_element方法
obj = Select(driver.find_element_by_name('product_size'))
obj.select_by_index(1)
並出現錯誤
NoSuchElementException:消息:無法找到索引為1的選項
也許find_element是問題? 我不知道。
我厭倦了使用谷歌瀏覽器中的“檢查”工具,發現頁面加載時,html僅加載了1個選項(在本例中為“選擇大小”)。 這解釋了為什么會出錯。
頁面加載時的html代碼。
<thead>
<td style="width: 40%;">
<select name="product_size" id="sct-size" data-md-selectize>
<option value="-">Choose Size</option>
</td>
<td style="width: 40%;">
<select name="product_color" id="sct-color" data-md-selectize>
<option value="-">Choose Color</option>
</select>
</td>
<td style="width: 19%;"><input type="text" class="md-input" name="product_stock_" id="inp-stock" placeholder="Stock" style="margin-top: -11px;text-align: center;"/></td>
<td style="width: 1%;"><a href="#" id="btn-addstock" style="margin-top: 5px; display: block;" title="Add Stock"><i class="material-icons"></i></a></td>
</thead>
嘗試Seema Nair解決方案,但出現其他錯誤
AttributeError:“選擇”對象沒有屬性“點擊”
我的新代碼是
mySelect = Select(driver.find_element_by_id("sct-size"))
mySelect.click()
mySelect.select_by_visible_text("S")
因此,新問題是,我如何單擊下拉菜單以顯示選項代碼?
您可以通過可見的文本或值來選擇原始代碼。
我遇到了類似的問題,這是因為在從下拉列表中選擇值之前,我必須單擊下拉鏈接,然后執行選擇。
因此,在Select之前添加一個click方法,您最初使用的相同代碼將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.