selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
安装selenium库
在命令行中输入
pip install selenium
等待下载安装即可,使用selenium还需要为本机配置对应浏览器的驱动,如果是chrome浏览器,在确定浏览器的版本之后,找到对应的chromedriver下载即可。
chromedriver的下载地址如下:
http://chromedriver.storage.googleapis.com/index.html
一个小小的例子
作用:打开尔雅的登录页面,自动输入账户密码,并点击登陆,在学习页面点击第一个课程。
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC #期待的条件
from selenium.webdriver.support.ui import WebDriverWait
from urllib.parse import quote#对中文进行编码
from pyquery import PyQuery
from time import sleep
KEYWORD = 'ipad'
browser = webdriver.Chrome('D:\\chromdriver\\chromedriver.exe')#根据自己的路径进行改正
wait = WebDriverWait(browser,10)
url ='http://passport2.chaoxing.com/wlogin'
browser.get(url)
# html = browser.page_source
# doc = PyQuery(html)
def send_phone(phone_number):#输入电话号码
phone_box = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR,'#phone')
)
)
phone_box.send_keys(phone_number)
def send_password(password):#输入密码
pass_word = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR,'#code')
)
)
pass_word.send_keys(password)
def landing():
phone_number='************'
password ='***********'
send_phone(phone_number)
send_password(password)
landing_box = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR,'body > div.g_login.posCenter > div.g_l_left.fl > div > div.g_submit.mt40')
)
)
landing_box.click()
sleep(5)
# html = browser.page_source
# doc = PyQuery(html)
# print(doc)
def interface():
browser.switch_to.frame('frame_content')
shuake = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR,'body > div > div:nth-child(3) > div.ulDiv > ul > li:nth-child(1) > div.Mconright.httpsClass > h3 > a')
)
)
shuake.click()
landing()
interface()
注:因为尔雅在个人界面的html语言中加入了frame( 标签定义 中的一个特定的子窗口(框架))所以先要定位到这个框架中才可以进进行元素的定位,语句为:
browser.switch_to.frame('frame_content')