<p>由于<em>可见文本</em>的静态部分(即<code>W33</code>)后面总是跟着一个<em>变量文本</em>,例如<code>(only 4 left)</code>、<code>(only 3 left)</code>等,因此<a href="https://www.selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select.html#selenium.webdriver.support.select.Select.select_by_visible_text" rel="nofollow noreferrer">^{<cd4>}</a>可能无效。你可能不得不考虑其中之一:</P>
<ul>
<li><a href="https://www.selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select.html#selenium.webdriver.support.select.Select.select_by_value" rel="nofollow noreferrer">select_by_value(value)</a></li>
<li><a href="https://www.selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select.html#selenium.webdriver.support.select.Select.select_by_index" rel="nofollow noreferrer">select_by_index(index)</a></li>
</ul>
<hr/>
<h2>另类</h2>
<p>作为替代方案,您也可以使用基于<a href="/questions/tagged/xpath" class="post-tag" title="show questions tagged 'xpath'" rel="tag">xpath</a>的<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">Locator Strategy</a>,如下所示:</p>
<pre><code>driver.find_element_by_xpath("//select//option[contains(., 'W33')]").click()
</code></pre>
<blockquote>
<p>Note: You may need to expand the <code><select></code> element first before clicking on the option.</p>
</blockquote>
<p>理想情况下,您需要为<code>element_to_be_clickable()</code>诱导<a href="https://stackoverflow.com/questions/49775502/webdriverwait-not-working-as-expected/49775808#49775808">WebDriverWait</a>,如下所示:</p>
<pre><code>WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//select//option[contains(., 'W33')]"))).click()
</code></pre>
<p><strong>注意</strong>:您必须添加以下导入:</p>
<pre><code>from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
</code></pre>
<hr/>
<h2>参考文献</h2>
<p>您可以在以下内容中找到相关讨论:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/51250668/message-element-option-could-not-be-scrolled-into-view-while-trying-to-click/51252175#51252175">Message: Element could not be scrolled into view while trying to click on an option within a dropdown menu through Selenium</a></li>
</ul>