我一直收到这个错误,当我为另一个元素修复它时,我无法修复它。我认为这是因为对于其他元素我可以find_by_ID,而这个元素没有ID。
while True:
try:
driver.find_element_by_name('commit')
break
except (NoSuchElementException, StaleElementReferenceException):
time.sleep(1)
wait=WebDriverWait(driver, 10,ignored_exceptions=ignored_exceptions).until(EC.presence_of_element_located((By.NAME, 'commit')))
driver.find_element_by_css_selector('input.button').click()
错误:
selenium.common.exceptions.StaleElementReferenceException:消息: 陈旧元素引用:元素未附加到页面文档
参考页:http://www.supremenewyork.com/shop/shirts/go8jt7kse/f74y2ihpz
特定HTML元素:
<input type="submit" name="commit" value="add to cart" class="button" />
答案 0 :(得分:1)
首先,当您尝试执行操作的元素的属性发生更改时,会出现Stale Element Exception。
如果从找到元素到执行操作的时间不同,就会发生这种情况。
尝试使用Xpath而不是CSS
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
让我知道它是否有效
答案 1 :(得分:0)
它有效
try:
driver.get("http://www.supremenewyork.com/shop/shirts/m2wvkj5u6")
time.sleep(3)
driver.find_element_by_css_selector("#add-remove-buttons > input").click()
except:
pass
&#13;
答案 2 :(得分:0)
try:
driver.get("http://www.supremenewyork.com/shop/shirts/m2wvkj5u6")
time.sleep(3)
driver.find_element_by_css_selector("#add-remove-buttons > input").click()
except:
pass