Selenium笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium笔记相关的知识,希望对你有一定的参考价值。

Selenium是一个Web自动化测试工具(也可以当做爬虫工具

它可以模拟N多浏览器行为,而且支持多平台(windows、linux、MAC),多语言(C、 java、ruby、python、c#),多浏览器就不说啦。

 

准备工作:

 

python2.7

Selenium2.53.5

Chrome浏览器(其实其他的也可以)

Selenium的安装通过工具 pip install selenium 即可

想要通过Selenium模拟浏览器行为,我们还需要安装浏览器驱动

参考文章:http://blog.csdn.net/my2010sam/article/details/38582491

 

环境测试:

 

运行以下代码测试环境配置是否成功

from selenium import webdriver
import  time

browser = webdriver.Chrome()#选择要操控的浏览器
browser.get("http://cn.bing.com/")#跳转到指定网页
time.sleep(5)#休眠
browser.quit()

 

通过运行这段代码我们你会发现Selenium为你打开了一个新的Chrome浏览器,并自动跳转到必应中国之后关闭。到此,可以表明我们的环境配置完成了。

 

DEMO1:

我们接着上面的代码继续往下,通过bing搜索我们输入的关键词并跳转到结果页。

#输入关键词
browser.find_element_by_css_selector("input[class=‘b_searchbox‘][name=‘q‘]").send_keys(u"重庆理工大学")
#点击‘搜索按钮‘
browser.find_element_by_css_selector("input[class=‘b_searchboxSubmit‘]").click()

想通过Selenium对页面内的对象进行操作的话,我们就必须先找到这个对象,而找到这个对象的方法有很多种,在Selenium中统称为定位。通过我自己的几次测试和网上一些教程,使用“css selector”来定位页面对象的话在速度和准确率都有不错的表现。

css selector

CSS(层叠样式表Cascading Stylesheet) Selector来定位页面上的元素(Elements)

举一个简单的例子,我们查看bing首页的源代码。

技术分享

逐层拆解我们发现,输入框这一对象的标签是<input 加上一些描述属性>我们可以通过

browser.find_element_by_css_selector("input[class=‘b_searchbox‘]")

find_element_by_css_selector这个方法告诉浏览器我们选择css selector方法来定位页面对象。并且我们告诉他,我们要的是标签为input 并带有属性class=‘b_searchbox‘ 的对象,他就会返回一个element对象给我们。我们便可以对这个对象做指定操作。这里注意一下,如果仅靠一个属性无法定位到标签的话,我们可以使用2个属性。具体的写法为:

browser.find_element_by_css_selector("input[class=‘b_searchbox‘][name=‘q‘]")

当然也可以使用3个4个甚至更多的属性。不过我们在某些复杂的网页中,可能存在两个标签的属性完全一样(无ID),这个时候我们可以使用层级定位,先定位到它所属的某个标签,比如一个大的DIV,在通过element对象的find方法来定位它下层的对象,现在先不举例子,以后大家可能会遇到。掌握页面内对象的定位是使用Selenium的基础,所以一定要熟练。

 

当我们定位到一个元素后,我们就可以对它进行指定操作啦。

比如说输入框我们可以使用send_keys("keyword")进行输入

按钮的话我们可以通过click()进行点击。

这样我们运行上面的代码就可以打开一个浏览器并进入bing首页进行搜索啦。

(恩。。好像并没有什么卵用 不过这是基础!!!

 

以上是关于Selenium笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python+Selenium笔记(十五)调用JS

学习笔记:python3,代码片段(2017)

selenium笔记6

Selenium JavascriptExecutor 详解

Selenium JavascriptExecutor 详解

Selenium学习笔记 - 自动化测试体系与原理