无法修复StaleElementReferenceException@my send\u key

2024-10-04 11:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我对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


Tags: thetoinsendtimeisdriverselenium
1条回答
网友
1楼 · 发布于 2024-10-04 11:30:11

当你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)
    

相关问题 更多 >