python之selenium模块

Posted xyqiu90-365

tags:

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

一、selenium介绍:
它是一个用于Web应用程序测试的工具,可直接运行在浏览器中。
支持浏览器IE/Mozilla Firefox,Safari,Google Chrome,Opera等浏览器。

主要功能:
(1)测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
(2)测试系统功能——创建回归测试检验软件功能和用户需求
(3)支持自动录制动作和自动生成.Net、Java、Perl、Python等不同语言的测试脚本

(4)爬虫

 

二、Python selenium 以及 webdriver 的安装
Selenium本身支持多种语言的。例如:.Net,Java,Perl
需要驱动浏览器,所以需要安装对应浏览器和对应浏览器版本的web驱动

A 首先,安装selenium框架
pip install selenium

B 安装浏览器的驱动,以chrome浏览器为例
下载地址(需要FQ)
https://sites.google.com/a/chromium.org/chromedriver/downloads
或 http://chromedriver.storage.googleapis.com/index.html

查看chrome浏览器的版本,下载对应的驱动版本。

将下载好的driver解压放在Python的目录下,这样可以使用Python配置好的环境变量。

 

三、代码演示

示例:

 

# encoding:utf-8
from selenium import webdriver

#创建了指定的浏览器驱动
chrome = webdriver.Chrome()

#打开指定页面
chrome.get("https://www.baidu.com/")

#查询指定的元素
search = chrome.find_element_by_id("kw")

#发送值
search.send_keys("python")

 

实战:

#coding:utf-8
from selenium import webdriver
"""
#创建了指定的浏览器驱动
chrome = webdriver.Chrome()
#打开指定页面
chrome.get("https://www.baidu.com/")
#查询指定的元素
search = chrome.find_element_by_id("kw")
#发送值
search.send_keys("python")
"""
from time import sleep
from selenium import webdriver

url = "https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_qr_app=%E6%89%8B%E6%9C%BAQQ%E7%A9%BA%E9%97%B4&pt_qr_link=https%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=https%3A//z.qzone.com/download.html&pt_no_auth=0"

#创建了指定的浏览器驱动
chrome = webdriver.Chrome()

#打开指定页面
chrome.get(url)

#查询打开form表单的元素
login_form = chrome.find_element_by_id("switcher_plogin")
#触发单击事件
login_form.click()

#捕获用户名输入框
username = chrome.find_element_by_id("u")
#输入qq号
username.send_keys("XXX")

#捕获密码输入框
password = chrome.find_element_by_id("p")
#输入密码
password.send_keys("XXX")

#捕获提交按钮
submit = chrome.find_element_by_id("login_button")
#触发提交事件
submit.click()

sleep(3)

pls = chrome.find_elements_by_xpath(//ul[@id="feed_friend_list"]/li) #pip install lxml

for pl in pls:
    print(pl.text)
#print(dir(pl))

selenium_nohead.py

#coding:utf-8
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

url = "https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&daid=5&&hide_title_bar=1&low_login=0&qlogin_auto_login=1&no_verifyimg=1&link_target=blank&appid=549000912&style=22&target=self&s_url=https%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_qr_app=%E6%89%8B%E6%9C%BAQQ%E7%A9%BA%E9%97%B4&pt_qr_link=https%3A//z.qzone.com/download.html&self_regurl=https%3A//qzs.qq.com/qzone/v6/reg/index.html&pt_qr_help_link=https%3A//z.qzone.com/download.html&pt_no_auth=0"

chrome_options = Options()
chrome_options.add_argument("--headless")

chrome = webdriver.Chrome(chrome_options = chrome_options,executable_path = "G:\Python35\chromedriver.exe")

#打开指定页面
chrome.get(url)

#查询打开form表单的元素
login_form = chrome.find_element_by_id("switcher_plogin")
#触发单击事件
login_form.click()

#捕获用户名输入框
username = chrome.find_element_by_id("u")
#输入qq号
username.send_keys("xxx")

#捕获密码输入框
password = chrome.find_element_by_id("p")
#输入密码
password.send_keys("xxx")

#捕获提交按钮
submit = chrome.find_element_by_id("login_button")
#触发提交事件
submit.click()

sleep(3)

pls = chrome.find_elements_by_xpath(//ul[@id="feed_friend_list"]/li) #pip install lxml

for pl in pls:
    print(pl.text)

 












以上是关于python之selenium模块的主要内容,如果未能解决你的问题,请参考以下文章

python之selenium模块

Python+selenium自动化之EC模块之div弹窗

python之模块和包

python之模块和包

Python + selenium之unitest

selenium+python自动化之操作浏览器