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()
文中可能存在描述不正确,欢迎大神们指正补充!
感谢阅读,如果觉得对你有帮助,就在右下角点个赞吧,感谢!
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

浙公网安备 33010602011771号