一、第一个自动化脚本:实现打开百度首页并搜索”selenium”
#coding=utf-8 #为防止乱码,编码为utf-8
from selenium import webdriver #导入selenum的webdriver包
driver.find_element('id','kw').send_keys("selenium") #通过输入框的id为kw,定位到输入框,输入”selenium”
driver=webdriver.Firefox() #获取浏览器的对象(此处的driver可以定义为任意字符,只是个对象)
driver.get("http://www.baidu.com") #get方法发送网址
driver.find_element('id','su').click() #通过搜索按钮的id为su定位到搜索按钮,点击
driver.quit()
这个搜索就完成了,所以通过元素定位还是很简单的
前面看过一段时间的QTP,qtp是通过识别对象来录制或者编写脚本的,好多时候如果对象没有在对象库中,那么就识别不出来会中断,反过头来看看selenium还是比qtp简单的,因为还是稍微有点编程能力的,所以selenium运行起来更加容易。
首先把整体格式掌握了,具体怎么定位元素是有几种方法的
再来了解一下元素定位,即找到输入框或者搜索框或者按钮之类的控件
元素定位:通过firebug查看 (firebug是firefox里加载的,可以去网上查查怎么安装)
例如这段代码:
<input id=”kw1” class=”s_ipt” type=”text” maxlength=”100” name=”wd” autocomplete=”off”>
可以有多种方式定位:
Find_element_by_tag_name(‘input’) 页面中tag叫input的可能重复,所以不建议使用
Find_element_by_id(‘kw1’)
Find_element_by_class_name(‘s_ipt’)
Find_element_by_name(‘wd’)
二、把上面脚本升级一下,实现从文件中读取关键字,再搜索
#coding=utf-8
from selenium import webdriver
import time
driver=webdriver.Firefox() #利用火狐浏览器
driver.get("http://www.baidu.com") #打开get到的网址
time.sleep(5) #t停顿5秒,即5秒内一直在这个界面
print("网站的名称:",driver.title) #获取网站名称并输出
for line in open("keyword.txt").readlines(): #打开keyword.txt文件,并一行行读取数据:keyword.txt中可以存放任意关键字,比如:selenium python 赵丽颖(ps:一个关键字占一行)
driver.find_element('id','kw').send_keys(line) #通过输入框的id为kw,定位到输入框,输入”selenium”
driver.find_element('id','su').click() #通过搜索按钮的id为su定位到搜索按钮,点击按钮
time.sleep(5) #停顿5秒
driver.find_element('id','kw').clear() #清空输入框,防止下次输入的时候会连着上一次的,最后导致所有关键字都在输入框中了
driver.quit() #关闭浏览器