原文链接:http://www.cnblogs.com/Detector/p/7922592.html
问题描述
在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()
本文介绍了一种在使用Selenium WebDriver进行网页自动化测试时遇到的WebDriverException错误,并给出了具体的解决方案。错误的原因在于未正确切换frame导致无法定位元素,文中通过示例代码展示了如何通过driver.switch_to.default_content()来解决问题。
16万+

被折叠的 条评论
为什么被折叠?



