Selenium_博客已迁移selenium + python专题postman接口自動化

selenium 3.8.0 入门第一课

2017-12-21  本文已影响71人  别摸我蒙哥

背景:在爬虫过程中,关键一课就是selenium获取页面信息;selenium 以其优越的性能和封装,可覆盖大部分浏览器,并兼容多种语言。
本文就纯粹将 selenium 的使用(结合 python)

一、python 环境中安装方法


selenium 3.8.0 支持的 python 版本:Python 2.7,3.4+

如果你已经安装了 pip,直接使用最简单的命令完成安装或更新:

pip install -U selenium

二、Driver 的使用


Selenium 入门的第一课就是通过Driver 打开浏览器,并输入网址

Selenium 需要一个 驱动器(Driver)来映射指定的浏览器。
比如 Firefox 需要 geckodriver 来映射,Chrome 需要 chromedriver 来映射。
往往这里是执行第一段代码最常见的问题,针对不同的系统,win 有解决方案,Mac 也有,会在另一篇文章中单独说明。

Example 0:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://blog.csdn.net/csdnnews/article/details/78859701')

Example 1:

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('http://blog.csdn.net/csdnnews/article/details/78859701')
# 搜索输入框
elem = driver.find_element_by_class_name('input_search')
elem.send_keys('google')
elem.send_keys(Keys.RETURN)

driver.close()
print('Browser is closed')

Example 2:
Selenium 经常用于基础测试——web应用,下面就结合 Python 标准测试库 unittest 展开

import time
import unittest

from selenium import webdriver


class GoogleTestCase(unittest.TestCase):
    def setUp(self):
        self.browser = webdriver.Chrome()
        self.addCleanup(self.browser.quit)

    def testPageTitle(self):
        self.browser.get('http://www.baidu.com')
        self.assertIn('百度', self.browser.title)
        time.sleep(3)


if __name__ == '__main__':
    unittest.main(verbosity=2)

看完上面三段代码,对于第一次接触的同学来说,简直不知道再说什么。
有点代码基础的,把代码原样敲一边,就会出来结果,也可以打断点看每一个参数变化情况。(一定不要复制代码,这是学习的禁忌)
基础稍微薄弱的同学接着步伐往下看。

三、代码详细解释


上面的三个 Example 涉及了 Python 的 module 等内容,比较复杂,祭出一段最简单的代码,以此展开讲解

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('http://blog.csdn.net/csdnnews/article/details/78859701')
assert 'CSDN' in driver.title
# 搜索输入框
elem = driver.find_element_by_class_name('input_search')
elem.clear()
elem.send_keys('google')
elem.send_keys(Keys.RETURN)
driver.quit()
print('Browser is closed')

从第一行开始:

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('http://blog.csdn.net/csdnnews/article/details/78859701')

assert 'CSDN' in driver.title

elem = driver.find_element_by_class_name('input_search')

driver.quit()

小结

Selenium 的所有操作过程都可以理解为拟人化操作。
还是根据上面的代码,我们可以分析每个步骤。

先回顾代码的功能:在 CSDN 中搜索内容。
具体步骤可以分为:打开浏览器-->输入网址,进入界面-->选择搜索栏-->输入搜索内容-->回车搜索-->获得搜索结果,关闭浏览器。

浏览器操作 代码解释
打开浏览器 driver = webdriver.Chrome()
输入网址,进入界面 driver.get('http://blog.csdn.net/csdnnews/article/details/78859701')
选择搜索栏 elem = driver.find_element_by_class_name('input_search')
输入文本内容 elem.clear() elem.send_keys('google')
回车搜索 elem.send_keys(Keys.RETURN)
关闭浏览器 driver.quit()

这样看来,整个代码就清晰很多

参考文章:
https://pypi.python.org/pypi/selenium
http://selenium-python.readthedocs.io/getting-started.html

上一篇下一篇

猜你喜欢

热点阅读