selenium 自动化工具
安装:
pip install selenium
Chrome浏览器驱动的安装
http://npm.taobao.org/mirrors/chromedriver/
下载对应版本的浏览器驱动
解压后得到驱动的可执行文件
将其拷贝到任意环境变量目录
$ echo $PATH 查看环境变量路径
库的导入 from selenium import webdriver
创建浏览器对象 driver = webdriver.Chrome()
使用dir(driver)查看方法
加载网页: driver.get(“http://www.baidu.com/”)
简单操作:
driver.maximize_window() 最大化
driver.close() 关闭当前标签/窗口
driver.quit() 关闭所有标签/窗口
driver.save_screenshot(“baidu.png”) 保存页面快照
定位和操作:
driver.find_element_by_xpath(“//…../…”)
driver.find_element_by_id(“usename”)
查看请求信息:
driver.page_source 获取源码
driver.get_cookies() 获取浏览器中存储的cookies
driver.current_url 查看当前url
driver.title 查看当前标签的标题
从定位到的元素中提取数据的方法
el.get_attribute(key) 获取key属性名对应的属性值
el.text 获取开闭标签之间的文本内容
对定位到的元素的操作
el.click() 对元素执行点击操作
el.submit() 对元素执行提交操作
el.clear() 清空可输入元素中的数据
el.send_keys(data) 向可输入元素输入数据
自动登录抢商品(票等) 举例:
京东秒杀 练习
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://miaosha.jd.com/")
driver.implicitly_wait(5)
#验证是否登录
try:
user = driver.find_element_by_xpath("//*[@id="ttbar-login"]/div[1]/a")
except:
driver.find_element_by_xpath("//*[@id="ttbar-login"]/a[1]").click()
handles_list = driver.window_handles
driver.switch_to.window(handles_list[-1])
t = 0
while True:
try:
user = driver.find_element_by_xpath("//*[@id="ttbar-login"]/div[1]/a")
except:
#等待扫玛登录
t+=1
print(t)
continue
#账号登陆
# driver.find_element_by_xpath("//*[@id="content"]/div[2]/div[1]/div/div[3]/a").click()
# time.sleep(5)
# driver.find_element_by_id("loginname").send_keys("12345678910")
# driver.find_element_by_id("nloginpwd").send_keys("12345678910")
# time.sleep(5)
# driver.find_element_by_id("loginsubmit").click()
break
print("--------------------------------------")
n = 0
while True:
now_time = driver.find_element_by_xpath("//*[@id="timeline"]/div/ul/li[1]/a/div/div[1]/i").text
if now_time == "18:00":
nead_good = driver.find_element_by_xpath("//*[@id="super_seckill"]/div/ul/li[1]/div/a")
if nead_good.text == "立即抢购":
nead_good.click()
handles_list = driver.window_handles
driver.switch_to.window(handles_list[-1])
driver.find_element_by_id("InitCartUrl").click()
driver.implicitly_wait(5)
driver.quit()
break
time.sleep(5)
n += 1
print(n)

![selenium 自动化工具[Python常见问题]](https://www.zixueka.com/wp-content/uploads/2023/10/1696934480-2d145682a3be526.jpg)
