zoukankan      html  css  js  c++  java
  • [bug] 验证selenium的显式和隐式等待而发现的一个低级错误

    隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它们不错,先从自身找问题)

    代码如下:

     1 # -*- coding:utf-8 -*-
     2 '''
     3 Created on Oct 17, 2018
     4 
     5 @author: SaShuangYiBing
     6 
     7 Comment: 
     8 '''
     9 from selenium import webdriver
    10 driver = webdriver.Firefox()
    11 driver.implicitly_wait(10)
    12 driver.get("https://www.baidu.com")
    13 print (driver.current_url)

    错误如下:

     1 Traceback (most recent call last):
     2   File "D:WorkSpace3EXAMPLESelenium_exdebug.py", line 11, in <module>
     3     driver.implicitly_wait(10)
     4   File "C:Program FilesPython36libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 912, in implicitly_wait
     5     'implicit': int(float(time_to_wait) * 1000)})
     6   File "C:Program FilesPython36libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 321, in execute
     7     self.error_handler.check_response(response)
     8   File "C:Program FilesPython36libsite-packagesseleniumwebdriver
    emoteerrorhandler.py", line 242, in check_response
     9     raise exception_class(message, screen, stacktrace)
    10 selenium.common.exceptions.WebDriverException: Message: timeouts

    错误信息也出来,但也没用,也还是看不懂不知道是哪里有问题……——……

    本着多对比才能知道好坏的道理,我尝试换了个 Chrome,运行正常了,不报错也正常运行了后面的代码,进一步证明先人们的结论是正确的。接下来就很明确了,问题10000%出在 firefox身上,找问题思路:

    1、先确定firefox的版本号及是32/64bit    ----->是 62.0.3(64bit)

    2、确认firefox驱动跟版本匹配关系  ----->根据操作系统要求下载firefox最新驱动

    3、到驱动存放文件夹找原始驱动文件进行比对一下大小,确认驱动是否最新    -------->尼玛想骂人了,根本就没找到驱动,驱动哪去了~~~~~~~

    4、新最新的 firefox 驱动放到驱动文件夹下,再次运行一次,哇靠成功了。----->所有的浏览器驱动我都统一放到:C:Program FilesPython36Scripts,省得放其它地方还要单独添加进环境变量中。

    总结:

    1、遇到问题,一定要先尝试多种方法进行问题的初步定界

    2、养成编程好习惯,要不耻下问,随便到哪里去问(但前提是对别人工作不要有影响)

    疑问:

    1、为啥我没有添加这个 Firefox 驱动,仍然可以在代码中启动浏览器也可以加载网页并进行元素定位和操作???

  • 相关阅读:
    android源码在线查看
    关于codereview工具与建议
    <转>如何进行code review
    [转] Android实时抓包分析 : 善用adb调试桥
    Swift:UIKit中Demo(一)
    Objective-C学习笔记(十)——循环语句for和do-while的使用
    一些牛人的IOS博客,mark下慢慢学习
    Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力)
    Web前端之基础知识
    通过金矿模型介绍动态规划
  • 原文地址:https://www.cnblogs.com/aziji/p/9805286.html
Copyright © 2011-2022 走看看