Selenium学习基础上

Selenium基础学习

直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到。爬虫更稳定。

首先下载 chromedriver 版本号要和自己谷歌浏览器版本一致

下载地址

快速简易selenium项目

# chromdriver 得版本一定要和浏览器版本一样
import os
from selenium import webdriver
import time

# 获取chrome drive地址
file = os.path.join(os.path.dirname(__file__), 'chromedriver.exe')
driver = webdriver.Chrome(file)

# driver.get() 打开时网页
driver.get('https://www.baidu.com')


# close()关闭当前的窗口
# driver.close()
# 退出驱动关闭所有窗口
driver.quit()

定位元素

讲取两种方式

from selenium import webdriver
import os
from selenium.webdriver.common.by import By

file = os.path.join(os.path.dirname(__file__), 'chromedriver.exe')
driver = webdriver.Chrome(file)

driver.get('https://www.baidu.com')
"""
elements 寻找符合的所有
driver.find_elements()
element 寻找符合的一个
driver.find_elements_by_id()
send_keys() 是往输入框输入数据
click() 是点击按钮
"""

# 寻找id
# driver.find_element_by_id('kw').send_keys('python')
# driver.find_element(By.ID, 'kw').send_keys('python')
# 查询类名
# driver.find_element_by_class_name('s_ipt').send_keys('java')
# driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('jerry')
# 寻找name
# driver.find_element_by_name('wd').send_keys('chen')
# driver.find_element(By.NAME, 'wd').send_keys('chen')
# 根据标签查找元素 通过标签名字去定位 用的不多
# driver.find_element_by_tag_name('head')
# driver.find_element(By.TAG_NAME, 'head')
# 通过xpath来定位
# driver.find_element_by_xpath('//input[@id="kw"]').send_keys('java')
# driver.find_element(By.XPATH,)
# 通过css选择器
# driver.find_element(By.CSS_SELECTOR, '#kw').send_keys('hello')

# clear 清空输入的内容

driver.find_element_by_id('su').click()

操作下拉框

import time
import os
from selenium import webdriver
# 需要导入这一个框
from selenium.webdriver.support.ui import Select

file = os.path.join(os.path.dirname(__file__), 'chromedriver.exe')
driver = webdriver.Chrome(file)
# 这个网址他的网页源代码是嵌套的所以需要先转换到下拉选择框在的网址
url = 'https://www.17sucai.com/pins/demo-show?id=5926'
driver.get(url)
# 切换
# 第一种过时了 转换下拉选择框的网址
# driver.switch_to_frame(driver.find_element_by_id('iframe'))
driver.switch_to.frame(driver.find_element_by_id('iframe'))
# selenium.webdriver.support.ui先导入这个包 import Select
# 实例化Select对象
selectTag = Select(driver.find_element_by_class_name('nojs'))
# 这样是不可以的
# selectTag = driver.find_element_by_class_name('nojs')

# 1 根据值查找
selectTag.select_by_value('JP')
# 2 根据索引值来选择
time.sleep(2)
selectTag.select_by_index(3)

现在实现一个小案例

"""
模拟登录豆瓣
"""
import time
import os
from selenium import webdriver

file = os.path.join(os.path.dirname(__file__), 'chromedriver.exe')
driver = webdriver.Chrome(executable_path=file)
url = 'https://douban.com'

driver.get(url)

# 切换登录方式 短信登录和密码登录
# 因为包裹了所以要先切换网址
driver.switch_to.frame(driver.find_element_by_tag_name('iframe'))
driver.find_element_by_class_name('account-tab-account').click()
time.sleep(2)

# 填写登录信息
driver.find_element_by_id('username').send_keys('xxxx')
driver.find_element_by_id('password').send_keys('xxxx')

# 点击按钮登录
# 因为类名可以同时存在两个 空格就是代表有两个所以只能取一个或者xpath
driver.find_element_by_class_name('btn-active').click()

selenium学习下 https://blog.csdn.net/zhangfanweilai/article/details/113916624

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值