无法修复StaleElementRefereceException @我的send_keys

时间:2019-01-02 20:46:24

标签: python selenium browser

所以我在Python上还很新,我使用selenium和firefox为自己尝试了一些东西。但是当我想使用send_key()

在带有selenium的firefox中键入文本字段时,出现了StaleElementRefereceException

我尝试了很多类似How to avoid "StaleElementReferenceException" in Selenium?的解决方案,但并没有太大帮助,因为我的不是click(),而是send_key

    hshtg = "xyz"

    driver = self.driver
    driver.get(".......")
    #time.sleep(3)

    cmmnt_elem = driver.find_element_by_xpath('//textarea[@aria-label="Kommentar hinzufügen ..."]')
    cmmnt_elem.click()
    #time.sleep(3)

    cmmnt_elem.send_keys(hshtg)
    #time.sleep(3)
    cmmnt_elem.send_keys(Keys.RETURN)

但是,我得到了那些错误。

File ".....py", line 45, in comment_photo
cmmnt_elem.send_keys(hshtg)

......

selenium.common.exceptions.StaleElementReferenceException: Message: The element 
reference of <textarea class="Ypffh"> is stale; either the element is no longer 
attached to the DOM, it is not in the current frame context, or the document 
has been refreshed

也尝试过这个:(原因:How to avoid "StaleElementReferenceException" in Selenium?

attempts = 0
while attempts < 20:
try:
cmmnt_elem.send_keys(hshtg)
break
except Exception as e:
attempts+1

如果有帮助,请填写以下字段:comment field on instagram

1 个答案:

答案 0 :(得分:0)

当您click textarea修改DOM时,它将给出错误信息,有两种解决方法可以解决。

  • 删除click()操作

    cmmnt_elem = driver.find_element_by_xpath('//textarea[@aria-label="Kommentar hinzufügen ..."]')    
    cmmnt_elem.send_keys(hshtg)
    
  • 点击后重新搜索元素

    cmmnt_elem = driver.find_element_by_xpath('//textarea[@aria-label="Kommentar hinzufügen ..."]')
    cmmnt_elem.click()
    
    cmmnt_elem = driver.find_element_by_xpath('//textarea[@aria-label="Kommentar hinzufügen ..."]')
    cmmnt_elem.send_keys(hshtg)