先下载 chrome 驱动,参考selenium 加载动态网页.
需要注意的是,下载的驱动版本要和浏览器当前版本匹配!!
查看浏览器版本

我的浏览器版本不是最新,下载时要选择对应的76版本
def un_zip(file_name, to_dir='./'):
"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(to_dir):
pass
else:
os.mkdir(to_dir)
for names in zip_file.namelist():
zip_file.extract(names, to_dir)
zip_file.close()
def download_driver(to_dir='./', version=''):
print('install chrome-driver first')
url = 'http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE'
if len(version)>0:
url = 'http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE_'+version
version = requests.get(url).content.decode('utf8')
driver_file = 'http://npm.taobao.org/mirrors/chromedriver/' + version + '/chromedriver_win32.zip'
r = requests.get(driver_file)
download_zip = "chromedriver_win32.zip"
with open(download_zip, "wb") as code:
code.write(r.content)
un_zip(download_zip, to_dir)
os.remove(download_zip)
在交互式环境中调试 selenium
我在左侧的 jupyter 环境中输入代码,右边由驱动打开的浏览器会自动执行,大家可以玩一玩哦
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
import requests
import zipfile
import os
#初始化一个浏览器(如:谷歌,使用Chrome需安装chromedriver)
try:
driver = webdriver.Chrome()
except Exception as e:
download_driver(to_dir='./', version='76')
driver = webdriver.Chrome()
driver.get("http://blog.youkuaiyun.com/")

模拟点击
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
a = driver.find_element_by_class_name('userinfo').find_element_by_tag_name('a')
# 直接用 a.click() 不起作用
driver.execute_script("arguments[0].click();", a)
进入到登入界面,接下来就要点击“账号密码登录”

driver.find_element_by_class_name('main-select') \
.find_element_by_partial_link_text('账号密码登录').click()

username = 'itnerd'
password = ''
ubox = driver.find_element_by_id("all")
ubox.clear()
ubox.send_keys(username)
pbox = driver.find_element_by_id("password-number")
pbox.clear()
pbox.send_keys(password)
buttons = driver.find_elements_by_tag_name("button")
for b in buttons:
if b.text == "登录":
b.click()
break

完犊子。。。。
本文详细介绍如何使用Selenium和ChromeDriver进行动态网页加载及自动化测试。从下载匹配版本的ChromeDriver开始,到通过Python代码实现浏览器自动化操作,包括页面导航、元素定位和交互等关键步骤。
2660

被折叠的 条评论
为什么被折叠?



