selenium的import 问题

今天在群里面给一哥们解决了一问题,自己也对selenium的其中结构更加深入了解了下:

问题描述:


from selenium import webdriver

webdriver.firefox() 可以调用成功,但是通过webdriver.ie()调用报错, not callable.


问题解答:

通过查看selenium的机构,selenium包下面有个包叫webdriver, 然后包内有各种浏览器的包,以及一些常用文件包等等。

                                     

左右两张图分别为webdriver的包结构和ie包结构。


而我使用ie的时候一般都是from selenium.webdriver.firefox import webdriver,然后通过调用webdriver.Webdriver()来对ie初始化。

对于上述群里哥们提出的问题,我以为那个只是简单的调用包出了问题,当然包是无法调用的,但是他的webdriver.firefox()竟然能够运行,特别让我诧异,自己试了试,果然能够成功,顿时觉得对python的理解有问题了,于是调试进入到webdriver内部查看webdriver包下到底还有啥东西能够是包初始化,到watch窗口发现包内竟然有firefox是class类型的,我了个去,不是吧,很是不理解????

继续往下看,发现竟然还有个firefox模块?这个才是我预想中的呢,可是可是怎么会有firefox 类呢,由于以前知道这些包类的__init__()可能捣鬼,所以查看了下webdriver下的这个文件,有惊喜,见下图:



哇,原来在这里就导入了类了,但是亮点是,它导入之后用的别名和同级的包名都不一样哦,比如firefox 和Firefox, ie和Ie.

回头看看自己刚才调试用的,果真用的是Firefox. 汗!!!


原来selenium考虑的还蛮周全,让人在import的时候不用那么长的路径就能直接调用内部的不同的类,嗯,懒人专用。当然,在内部使用的时候,因为所有的浏览器包下面的模块名都是webdriver,所以在import的时候,必须import到上一层目录,然后在调用的时候通过像ie.wendriver.Webdrver()等来调用。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值