Python模块学习之解决selenium的“can't access dead object”错误
问题描述
在python执行过程中,提示selenium.common.exceptions.WebDriverException: Message: TypeError: can't access dead object
原因
原因是代码中用到了frame,获取元素前需要切换到frame才能定位到元素,否则无法定位到元素
解决方法
在查找元素前加一句driver.switch_to_default_content() 退出frame
示例代码
import time from selenium import webdriver driver = webdriver.Firefox() driver.get('https://pay.xunlei.com/') driver.switch_to.frame('loginIframe') driver.find_element_by_xpath(".//*[@id='al_u']").send_keys('***') driver.find_element_by_xpath(".//*[@id='al_p']").send_keys('***') driver.find_element_by_xpath(".//*[@id='al_submit']").click() time.sleep(3) driver.switch_to.default_content() # 退出frame,没有这一句后续的元素定位会出错 driver.find_element_by_xpath(".//*/a[text()='页游充值']").click() driver.get_screenshot_as_file('ss.png') time.sleep(1) driver.quit()
文中可能存在描述不正确,欢迎大神们指正补充!
感谢阅读,如果觉得对你有帮助,就在右下角点个赞吧,感谢!
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。