提问人:Shiv Patel 提问时间:1/22/2021 最后编辑:Shiv Patel 更新时间:1/22/2021 访问量:113
Selenium 错误:StaleElementReferenceException
Selenium Error: StaleElementReferenceException
问:
如果您看到附加的图像,我需要拨动该开关,因为我不希望这个系统以我的名义运行,而是以系统名称运行。我需要单击此切换开关以切换为系统模式运行。我收到一个错误 StaleElementReferenceException,当我做一些研究时,我需要导入 NoSuchElementException 和 StaleElementReferenceException 并将其分配给igonered_exception然后调用此变量在 run_as_button 变量的 webdriverwait 函数中初始化它......当我这样做时,我仍然收到错误。
您将在下面找到 python 中的相关代码,其中包括导致此错误的导入和代码行
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.support import expected_conditions as EC
#ignore exception
igonered_exception = (NoSuchElementException, StaleElementReferenceException)
#run as system
run_as_button = WebDriverWait(driver,120,ignored_exceptions=igonered_exception).until(EC.element_to_be_clickable((By.XPATH,('//*[@id="core-page main"]/div[2]/div/lp-section/section/div/div/div[2]/div[3]/lp-slide-toggle/div'))))
action.move_to_element(run_as_button).click(run_as_button).perform()
下面是拨动开关的 HTML 代码的截图
<div _ngcontent-qyq-c18="" class="row">
<div _ngcontent-qyq-c18="" class="col col-md-3"></div>
<div _ngcontent-qyq-c18="" class="col-12 col-md-2 d-flex align-items-center"><label _ngcontent-qyq-c18="">Run as System</label></div>
<div _ngcontent-qyq-c18="" class="col-12 col-md-4">
<lp-slide-toggle _ngcontent-qyq-c18="" _nghost-qyq-c10="">
<div _ngcontent-qyq-c10="" class="slide-toggle">
<input _ngcontent-qyq-c10="" type="checkbox" id="kl-toggle-1611252633257330581">
<label _ngcontent-qyq-c10="" for="kl-toggle-1611252633257330581">
<div _ngcontent-qyq-c10="">
<!---->
</div>
<div _ngcontent-qyq-c10="">
<!---->
</div>
</label>
</div>
</lp-slide-toggle>
</div>
<div _ngcontent-qyq-c18="" class="col col-md-3"></div>
</div>
您将在下面找到错误消息的完整输出
Traceback (most recent call last):
File "c:/Users/patel/Desktop/Python/Automation/import_file.py", line 59, in <module>
action.move_to_element(run_as_button).click(run_as_button).perform()
File "C:\Anaconda\lib\site-packages\selenium\webdriver\common\action_chains.py", line 80, in perform
self.w3c_actions.perform()
File "C:\Anaconda\lib\site-packages\selenium\webdriver\common\actions\action_builder.py", line 76, in perform
self.driver.execute(Command.W3C_ACTIONS, enc)
File "C:\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Anaconda\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=87.0.4280.141)
答: 暂无答案
评论