1. Selenium

1.1 什么是selenium?

  1. Selenium是一个用于Web应用程序测试的工具。

  2. Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。

  3. 支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动 真实浏览器完成测试。

  4. selenium也是支持无界面浏览器操作的。

1.2 为什么使用Selenium?

模拟浏览器功能,自动执行网页中的js代码,实现动态加载。

1.3 使用步骤

  1. 导包: form selenium import webdriver
  2. 创建谷歌浏览器操作对象:
    1. path = 浏览器驱动文件路径
    2. browser = webdriver.Chrome(path)
  3. 访问网址
    1. url = “所要访问的网址”
    2. browser.get(url)
1
2
3
4
5
6
7
8
from selenium import webdriver

path = 'D:\chromedriver\chromedriver.exe'
browser = webdriver.Chrome(path)


url = 'https://www.baidu.com'
browser.get(url)

1.3.1 元素定位

元素定位:自动化要做的就是模拟鼠标和键盘来操作来操作这些元素,点击、输入等等。操作这些元素前首先

要找到它们,WebDriver提供很多定位元素的方法。

方法:

1. find_element(By.ID,'标签id')
1. find_element(By.CLASS_NAME,'标签类名')
1. find_element(By.TAG_NAME,'标签名')
1. find_element(By.CSS_SELECTOR,'根据选择器进行定位')
1. find_element(By.XPATH,'根据XPATH进行定位')

1.3.2 访问元素信息

  1. 获取元素属性: .get_attribute(‘class’)
  2. 获取元素文本:.text
  3. 获取标签名:.tag_name

1.3.3 交互

  • 点击:click()

  • 输入:send_keys()

  • -后退操作:browser.back()

  • 前进操作:browser.forword()

  • 模拟JS滚动:

    • js=’document.documentElement.scrollTop=100000’

    • browser.execute_script(js) 执行js代码

  • 获取网页代码:page_source

  • 退出:browser.quit()

2.Phantomjs (已废弃)

2.1 什么是Phantomjs?

  1. 是一个无界面的浏览器
  2. 支持页面元素查找,js的执行等
  3. 由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多

2.2 如何使用Phantomjs?

  1. 获取PhantomJS.exe文件路径path
  2. browser = webdriver.PhantomJS(path)
  3. browser.get(url)

扩展:保存屏幕快照:browser.save_screenshot(‘图片.png’)

3. Chrome handless

Chrome-headless 模式,是Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。

3.1 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('‐‐headless')
chrome_options.add_argument('‐‐disable‐gpu')

path = r'"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"'
chrome_options.binary_location = path

browser = webdriver.Chrome(chrome_options=chrome_options)

browser.get('http://www.baidu.com/')

3.2 配置封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
#这个是浏览器自带的 不需要我们再做额外的操作
from selenium.webdriver.chrome.options import Options

def share_browser():
#初始化
chrome_options = Options()
chrome_options.add_argument('‐‐headless')
chrome_options.add_argument('‐‐disable‐gpu')
#浏览器的安装路径 打开文件位置
# #这个路径是你谷歌浏览器的路径
path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(chrome_options=chrome_options)
return browser