所以我在Python上还很新,我使用selenium和firefox为自己尝试了一些东西。但是当我想使用send_key()
我尝试了很多类似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
答案 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)