selenium-webdriver (python)(一)学习笔记

原文学习网址
我的Mac调试环境:Python2.7.12且已安装selenuim库

脚本:

# coding = utf-8

from selenium import webdriver
import  time #调入time函数

browser = webdriver.Firefox()

browser.get("http://www.baidu.com")
time.sleep(0.3) #休眠0.3秒

browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
time.sleep(3)  # 休眠3秒

browser.quit()

运行结果:
这里写图片描述

分析:
虽然selenium webdriver默认安装的是Firefox的驱动,但是对浏览器版本限制很大,只有低版本的Firefox可以运行,而在Firefox高版本需要使用 geckodriver 来驱动,不再使用Selenium默认自带的Firefox webdriver。

网上解决办法:
需要手动下载 geckodriver 并将其所在的路径设为环境变量(或者把geckodriver.exe扔到python安装目录下,跟python.exe同级目录)。
PS:这个说的应该是针对Windows系统的,MAC系统可以借鉴。

【划重点】然后我放弃了Firefox,选择了Google Chrome。

脚本:

import os
from selenium import webdriver
import time

chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver

driver =  webdriver.Chrome(chromedriver)
driver.get("http://baidu.com")

driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(1)

driver.quit()

重点说明:
与高版本Firefox需要geckodriver驱动类似,webdriver没法实现chromedriver,在chrome浏览器上运行测试脚本时,首先需要下载chromedriver,这个程序是由谷歌团队提供的,你可以把它看作是连接webdriver和chrome浏览器的桥梁。

在Mac中安装chromedriver:
这里写图片描述
我的步骤:
① 安装homebrew:homebrew
② 安装chromedriver:在终端输入“brew install chromedriver”
这里写图片描述

关键代码解释:

chromedriver = "/usr/local/bin/chromedriver"

这一句表明chromedriver的安装路径。这个路径我搞了好半天才整出来,在采用上述介绍的方法安装了chromedriver之后,我根本在电脑上找不到它。

事实上,Mac下/usr/local目录默认对于finder是隐藏的,如果需要到/usr/local下:
方法①:终端命令后(见下图)重启电脑。
这里写图片描述
方法②:打开finder,然后使用command+shift+G,在弹出的目录中填写/usr/local就可以了。

os.environ["webdriver.chrome.driver"] = chromedriver

environ是一个字符串所对应环境的映像对象。具体怎么解释我真不太懂,暂且当做把chromedriver的路径地址告诉了webdriver,架起了webdriver和chrome之间的桥梁吧。。。

至此,才保证了可以用chrome浏览器进行自动操作。

最后,巩固一下其它语句的具体意思:

driver = webdriver.Chrome(chromedriver)
//操控的是chrome浏览器。

driver.get(“http://baidu.com“)
//打开百度页面

driver.find_element_by_id(“kw”).send_keys(“selenium”)
//一个控件有若干属性id 、name、(也可以用其它方式定位),百度输入框的id 叫kw ,我要在输入框里输入 selenium 。

driver.find_element_by_id(“su”).click()
//搜索的按钮的id 叫su ,我需要点一下按钮( click() )。

driver.quit()
//退出并关闭窗口的每一个相关的驱动程序,它还有个类似的表弟。

browser.close()
//关闭当前窗口 ,用哪个看你的需求了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值