Python Selenium自动化入门
大家好,今天给大家带来的是Selenium自动化。
介绍
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
安装
pip install selenium
原理
selenium原理说简单点就是通过检索元素来触发指定事件来完成自动化。
初始化
初始化很简单:
导入模块
from selenium import webdriver
启动驱动
browser=webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
打开网页
browser.get('http://www.kugou.com/')
元素检索
在selenium里检索元素有八个方法:
id
name
className
tagName
linkText
partialLinkText
xpath
cssSelector
这边我们只介绍简单的六个,一般的掌握了这六个也够用了。
1)查找元素的ID。
browser.find_element_by_id("Element's id")
2)通过元素的name来定位。
browser.find_element_by_name("Element's name")
3)通过所应用的样式表名className。
browser.find_element_by_class_name("class name")
4)通过CSS应用特征。
find_element_by_css_selector("a[id='id']")
5)通过链接的文本。
browser.find_element_link_name("link name")
6)通过XPATH定位。
browser.find_element_by_xpath("//***[*='**']")
这边我们可以实现一个简单的酷狗听歌的脚本:
from selenium import webdriver
browser=webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
browser.get('http://www.kugou.com/')
input1=browser.find_element_by_css_selector('[type="text"]').send_keys('体面')
button1=browser.find_element_by_css_selector('.searh_btn').click()
checkbox1=browser.find_element_by_css_selector('.search_icon.checkall').click()
button2=browser.find_element_by_css_selector('.play_all').click()
基础好的可以试试360 haosou.com 的测试 :
#coding=utf-8
from selenium import webdriver
import os
import time
# set little time stop and big time stop for viewing changes
little_time_stop = 1
big_time_stop = 2
# 默认广告条数
ads_num_require = 8
# 请求连接
req_url = "http://www.haosou.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=%E9%B2%9C%E8%8A%B1"
# 打开浏览器
browser = webdriver.Chrome()
# 开始请求
browser.get(req_url)
# 获取所有的广告
all_ads_li = browser.find_elements_by_css_selector('#e_idea_pp li')
# 当前广告条数
ads_num_current = len(all_ads_li)
print ("Has been got %d ads" %(ads_num_current))
# 如果广告条数与默认不符
if ads_num_current < ads_num_require:
print("The number of ads is not enough ( current : %d require: %d)" %(ads_num_current,ads_num_require))
# exit()
# 获取顶部连接
i = 0
for ads_li in all_ads_li:
time.sleep(big_time_stop)
i = i+1
print ("ads %d :" %i)
try:
main = ads_li.find_element_by_css_selector('h3 a')
except:
print ("\tError: ads %d cann't find" %(i))
else:
print ("\tReady: visit ads %d" %(i))
main.click()
print ("\tSucess: visit ads %d" %(i))
time.sleep(little_time_stop)
try:
img_link = ads_li.find_element_by_class_name('e_biyi_img')
except:
print ("\tError : no img in ads %d " %(i))
else:
print ("\tReady : visit img_link %d" %(i))
img_link.click()
print ("\tSuccess : visit img_link %d" %(i))
time.sleep(little_time_stop)
try:
child_div = ads_li.find_element_by_class_name('e_biyi_childLink');
except:
print ("\tError : no child link in ads %d" %(i))
else:
try:
child_links = child_div.find_elements_by_css_selector('a')
except:
print ("\tError : find child_links error")
else:
num_links = len(child_links)
print ("\tSuccess : there are %d child_links" %(num_links))
j = 0
for child_a in child_links:
j = j + 1
print ("\t\tReady : visit child link %d in ads %d" %(j, i))
child_a.click()
print ("\t\tSuccess : visit child link %d in ads %d" %(j, i))
time.sleep(little_time_stop)
print ("End and thanks for your using!")
# 下面代码选择取消注释
# 延时
time.sleep(5)
# 关闭当前窗口
browser.close()
# 关闭所有已经打开的窗口
browser.quit()
下期见!
文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/tongtongjing1765/article/details/100581662
- 点赞
- 收藏
- 关注作者
评论(0)