有两件事需要考虑如下:</P>
<ul>
<li><p>从第一次尝试开始,<a href="https://stackoverflow.com/questions/52782684/what-is-the-difference-between-webdriver-and-webelement-in-selenium/52805139#52805139">WebElement</a>将显示为动态元素,这是由于存在<em>id</em>属性值作为<code>datatable1595356931082</code>,该属性值可能会在每次访问时或定期更改:</p>
<pre><code>//*[@id="datatable1595356931082"]/div[1]/div[2]/table/tbody/tr[3]/td[2]/div/select/option[8]
</code></pre>
</li>
<li><p>在第二次尝试中,您使用了绝对<a href="/questions/tagged/xpath" class="post-tag" title="show questions tagged 'xpath'" rel="tag">xpath</a>。由于网站是动态的,元素将在每次访问或定期访问时重新定位:</p>
<pre><code>/html/body/div[4]/div[2]/div[2]/div/div[2]/div[2]/div/div/div[1]/div[2]/table/tbody/tr[3]/td[2]/div/select/option[8]
</code></pre>
</li>
<li><p>在第三次尝试中,<em>xpath</em>以<code>/</code>结尾,这是不需要的。因此你面对<a href="https://stackoverflow.com/questions/50003307/invalidselectorerror-invalid-selector-unable-to-locate-an-element-with-the-xpa/50005362#50005362">InvalidSelectorException</a></p>
</li>
<li><p>在第四次尝试中,您通过<code>driver.find_element_by_class_name('webix_hcell webix_ss_filter')</code>传递了多个类,其中as<code>driver.find_element_by_class_name()</code>只接受一个<em>类名</em>作为参数</p>
</li>
</ul>
<blockquote>
<p>You can find a detailed discussion in <a href="https://stackoverflow.com/questions/53528072/invalid-selector-compound-class-names-not-permitted-error-using-selenium/53536022#53536022">Invalid selector: Compound class names not permitted error using Selenium</a></p>
</blockquote>
<ul>
<li>最后,它是一个<a href="https://stackoverflow.com/questions/51250668/message-element-option-could-not-be-scrolled-into-view-while-trying-to-click/51252175#51252175">^{<cd5>}</a>节点,因此需要使用<code>Select</code>类</李>
</ul>
<blockquote>
<p>You can find a detailed discussion in <a href="https://stackoverflow.com/questions/7867537/how-to-select-a-drop-down-menu-value-with-selenium-using-python/62735660#62735660">How to select a drop-down menu value with Selenium using Python?</a></p>
</blockquote>
<hr/>
<h2>解决方案</h2>
<p>相关的基于文本的HTML将帮助我们构建一个规范的答案。但是,根据提供的HTML,单击文本为<strong>A</strong>的选项,您可以使用以下任意一种<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">Locator Strategies</a>:</p>
<ul>
<li><p>使用<code>XPATH</code>和<code>select_by_visible_text()</code>:</p>
<pre><code>select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='webix_hcell webix_ss_filter' and @role='columnheader']//following::select[1]"))))
select.select_by_visible_text('A')
</code></pre>
</li>
<li><p>使用<code>CSS_SELECTOR</code>和<code>select_by_value()</code>:</p>
<pre><code>select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "div.webix_hcell.webix_ss_filter[role='columnheader'] +select"))))
select.select_by_value('A')
</code></pre>
</li>
<li><p><strong>注意</strong>:您必须添加以下导入:</p>
<pre><code>from selenium.webdriver.support.ui import Select
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>
</li>
</ul>