<p>此错误消息</p>
<pre><code>Javascript error: Failed to execute 'elementsFromPoint' on 'Document': The provided double value is non-finite
</code></pre>
<p>…表示由于一个或其他原因,<em>WebDriver</em>实例无法找到元素:</p>
<ul>
<li>尝试与元素交互时,该元素未正确加载</李>
<li>元素位于<code><iframe></code>/<code><frame></code>内</li>
<li>元素的style属性包含<strong><code>display: none;</code></strong></li>
<li>元素位于<em>阴影DOM</em></li>
</ul>
<hr/>
<p>相关的HTML将有助于更好地分析问题。但是,您需要注意以下几点:</p>
<ul>
<li><p><code><select></code>标记的<code>id</code>属性是<strong>attribute178</strong>,这显然是动态的。所以你需要构造一个动态的<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">Locator Strategy</a></p>
</li>
<li><p>由于<code><select></code>标记的<code>id</code>属性是动态的,因此需要为<code>element_to_be_clickable()</code>诱导<em>WebDriverWait</em>,并且可以使用以下任一<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">Locator Strategies</a>:</p>
</li>
<li><p><code>cssSelector</code>:</p>
<pre><code>Select s = new Select(new WebDriverWait(getDriver(), 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("select.super-attribute-select[id^='attribute']"))));
s.selectByIndex(1);
</code></pre>
</li>
<li><p><code>xpath</code>:</p>
<pre><code>Select s = new Select(new WebDriverWait(getDriver(), 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//select[@class='super-attribute-select' and starts-with(@id, 'attribute')]"))));
s.selectByIndex(1);
</code></pre>
</li>
</ul>