zoukankan      html  css  js  c++  java
  • python webdriver 报错WebDriverException: Message: can't access dead object的原因(pycharm中)

    PyCharm中运行firefox webdriver访问邮箱添加通讯录的时候报错-WebDriverException: Message: can't access dead object

    调了半天,发现是因为在登录操作后没有从frame中切换出来导致的,因为在登录的时候需要先切换到frame中,登录之后要切换出来才能继续其他操作。

    下面是我运行的代码,driver.switch_to.default_content()这一行被我注释掉了,结果就报这个错


    代码:
    driver=webdriver.Firefox(executable_path='c:\geckodriver')
    driver.get('http://mail.126.com')
    try:
        wait=WebDriverWait(driver,10,0.2)#显示等待
        driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='x-URS-iframe']"))#切换到用户名和密码输入框所在的frame元素

        name=wait.until(lambda x:x.find_element_by_xpath("//input[@placeholder='邮箱帐号或手机号' and @name='email']"))
        name.send_keys('xiaxiaoxu1987')
        password=wait.until(lambda x:x.find_element_by_xpath("//input[@placeholder='密码']"))
        password.send_keys('gloryroad')
        submit=wait.until(lambda x:x.find_element_by_xpath("//a[@id='dologin']"))
        submit.click()
        #driver.switch_to.default_content()#在pycharm里用switch_to_default_content()会被加删除线,out了

        address_book_link=wait.until(lambda x:x.find_element_by_xpath("//div[text()='通讯录']"))
        address_book_link.click()


    运行报错:

    C:Python27python.exe D:/test/dataDrivenTestPractice1/PageObject/test.py
    Traceback (most recent call last):
      File "D:/test/dataDrivenTestPractice1/PageObject/test.py", line 27, in <module>
        address_book_link=wait.until(lambda x:x.find_element_by_xpath("//div[text()='通讯录']"))
      File "C:Python27libsite-packagesseleniumwebdriversupportwait.py", line 71, in until
        value = method(self._driver)
      File "D:/test/dataDrivenTestPractice1/PageObject/test.py", line 27, in <lambda>
        address_book_link=wait.until(lambda x:x.find_element_by_xpath("//div[text()='通讯录']"))
      File "C:Python27libsite-packagesseleniumwebdriver emotewebdriver.py", line 387, in find_element_by_xpath
        return self.find_element(by=By.XPATH, value=xpath)
      File "C:Python27libsite-packagesseleniumwebdriver emotewebdriver.py", line 957, in find_element
        'value': value})['value']
      File "C:Python27libsite-packagesseleniumwebdriver emotewebdriver.py", line 314, in execute
    None
        self.error_handler.check_response(response)
      File "C:Python27libsite-packagesseleniumwebdriver emoteerrorhandler.py", line 242, in check_response
        raise exception_class(message, screen, stacktrace)
    WebDriverException: Message: can't access dead object


    Process finished with exit code 0

    把注释去掉:

    driver=webdriver.Firefox(executable_path='c:\geckodriver')
    driver.get('http://mail.126.com')
    try:
        wait=WebDriverWait(driver,10,0.2)#显示等待
        driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='x-URS-iframe']"))#切换到用户名和密码输入框所在的frame元素

        name=wait.until(lambda x:x.find_element_by_xpath("//input[@placeholder='邮箱帐号或手机号' and @name='email']"))
        name.send_keys('xiaxiaoxu1987')
        password=wait.until(lambda x:x.find_element_by_xpath("//input[@placeholder='密码']"))
        password.send_keys('gloryroad')
        submit=wait.until(lambda x:x.find_element_by_xpath("//a[@id='dologin']"))
        submit.click()
        driver.switch_to.default_content()#在pycharm里用switch_to_default_content()会被加删除线,out了

        address_book_link=wait.until(lambda x:x.find_element_by_xpath("//div[text()='通讯录']"))
        address_book_link.click()

    结果:没有报错

    C:Python27python.exe D:/test/dataDrivenTestPractice1/PageObject/test.py

    Process finished with exit code 0

  • 相关阅读:
    PE 合并节
    VirtualAddress与VirtualSize与SizeOfRawData与PointerToRawData的关系
    .net core publish 找不到视图
    c++ rc 文件内包含中文字符导致在unicod环境下编译乱码
    .net 5.0 ref文件夹的作用
    .net 5.0项目升级工具
    HttpWebRequest DNS缓存清理
    .net 5.0 发布命令总结
    关于dll not found 排查解决
    关于win7 无法识别sha256签名导致驱动无法安装的问题
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/9290969.html
Copyright © 2011-2022 走看看