擅长:python、mysql、java
<p>您可以使用Nogoseke提到的XPath或CSS选择器,而不是使用元素id(正如您所指出的,元素id各不相同)。注意不要使XPath/选择器过于具体或依赖于不断变化的值,在本例中是元素id。不要在XPath中使用id,而要尝试用DOM结构(标记)来表示XPath:</p>
<pre><code>//*/div/div/div/span/span/span/button[contains(text(),'Download')]
</code></pre>
<p>直到您可以使用search函数而不是在Selenium中运行它来验证XPath。我右键单击网页“inspect element”,ctrl+f,然后输入上面的XPath来验证它是下载按钮。你知道吗</p>
<p>对于后人来说,如果上面的XPath太具体了,也就是说,它依赖于太多级别的DOM结构,那么可以做一些更短的事情,比如</p>
<pre><code>//*button[contains(text(),'Download')]
</code></pre>
<p>虽然,这可能不够具体,可能需要一个额外的字段,因为页面上可能有多个带有“下载”文本的按钮。你知道吗</p>