<p>尝试单击按钮后,您正在睡觉。你也会在睡觉前离开司机,这是另一个问题</p>
<P>考虑使用<a href="https://selenium-python.readthedocs.io/waits.html" rel="nofollow noreferrer">WebDriverWait().until()</a>函数来确保加载元素,而不是依赖于任意的时间量:</p>
<pre class="lang-py prettyprint-override"><code>from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//span[@class='RveJvd snByac' and text()='Zgadzam się']"))
)
driver.find_element_by_xpath("//span[@class='RveJvd snByac' and text()='Zgadzam się']").click()
</code></pre>
<hr/>
<p>出现此错误的原因是<a href="https://stackoverflow.com/questions/63747406/selenium-i-cant-click-button-in-dialog-before-you-continue-in-google">element is nested in an ^{<cd1>}</a>。这可以通过等待iframe出现,然后等待加载按钮,最后单击按钮来解决:</p>
<pre><code># Wait for the iFrame to be available to switch to it
WebDriverWait(driver, 10).until(
EC.frame_to_be_available_and_switch_to_it(0)
)
# Wait for the button to be available within that iframe
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//span[@class='RveJvd snByac' and text()='Zgadzam się']"))
)
# Finally click the button
driver.find_element_by_xpath("//span[@class='RveJvd snByac' and text()='Zgadzam się']").click()
</code></pre>