基本介绍
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0(Selenium Remote Control) 以及 WebDriver, 也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并。看上去WebDriver与之前Selenium-RC的实现方式类似,实际上两者之间存在着本质的区别。
对于所有类型的浏览器Selenium- RC都是使用的同一种方法:当浏览器启动时,向其中注入javascript,从而使用这些js来驱动浏览器中的AUT(Application Under Test)。WebDriver并没有使用这种技术,它是通过调用浏览器原生的自动化API直接驱动浏览器。
代码实践
使用python来探索一下selenium的一些基本用法:
python中使用selenium需要2个前提条件:
- pip安装python的selenium package:
pip install selenium
2. 安装selenium client driver,用来驱动浏览器,不同的浏览器有各自的驱动,这个可以在selenium官网下载,以Linux为例,将下载的二进制文件放在/usr/bin目录下即可
安装好之后就可以开始使用了,首先需要新建一个driver对象,这里新建了一个chrome driver,其他浏览器同理。
driver = webdriver.Chrome()
然后就可以用driver对象干活了,最简单的打开一个网页,直接:
driver.get('https://seele.pro')
便可以打开网站了,driver的current_url, page_source, title等属性相应的也发生了变化。
打开页面后,便可以在页面中定位元素了,selenium用于定位元素的方法也是相当多,可以通过类名,css选择器,xpath,id等多种方式来定位元素,例如:
elem = driver.find_element_by_css_selector('.header-menu')
便可以通过css选择器选中一个菜单按钮。
elem.click()
通过click()方法便可以点击按钮,展开菜单栏了。对于含有子元素的控件,可以继续在其子元素中定位控件
elem.find_elements_by_css_selector('*')
通过通配符选择器,可以找到它的所有子元素,或者通过xpath,来查找:
elem.find_elements_by_xpath(".//*")还有其他的定位方式就不一一列举了。