selenium入门知识(一)

selenium入门知识(一)



selenium基本使用方法

from selenium import webdriver

# 实例化浏览器
driver = webdriver.Chrome()

# 发送请求
driver.get('https://www.baidu.com')

# 退出浏览器
driver.quit()

驱动

Phantomjs快速入门

无头浏览器

一个完整的浏览器内核,包括js解析引擎,渲染引擎,请求处理等,但是不包括显示和用户交互页面的浏览器

import time
from selenium.webdriver.remote.webelement import WebElement

from selenium import webdriver

'''
1、指定路径
2、添加到环境变量
'''
# 加载驱动
driver = webdriver.PhantomJS(executable_path=r'F:/pycharm program/python进阶学习/爬虫/第十一节课/上课资料/phantomjs.exe')

# 使用驱动去打开浏览器
# Phantomjs是一个无头浏览器
driver.get("https://www.baidu.com/")
# 最好给点加载时间


# 定位输入框
input_ = driver.find_element_by_id('kw')
# <class 'selenium.webdriver.remote.webelement.WebElement'>
# print(type(input_))
input_.send_keys('python')

# 点击按钮
# 定位按钮
click_ = driver.find_element_by_id('su')
click_.click()
# 截图
time.sleep(3)

# 查看当前打开的url
print(driver.current_url)

driver.save_screenshot('python.png')

Chorme快速入门

chromedriver:

是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。

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

# 加载驱动
driver = webdriver.Chrome()

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

# 定位到输入框 并且输入
# 通过id定位
# driver.find_element_by_id('kw').send_keys('爬虫')

# input_tag = driver.find_element_by_id('kw')
# input_tag.send_keys('python')

# 通过class定位
# input_tag = driver.find_element_by_class_name('s_ipt')
# input_tag.send_keys('xxx')


# 定位的另外一种方式
# 通过id定位
# find_element 需要把定位方式和具体值都传进去
# input_tag = driver.find_element(By.ID, 'kw')
# input_tag.send_keys('爬虫')

# 通过class定位
# input_tag = driver.find_element(By.CLASS_NAME, 's_ipt')
# input_tag.send_keys('yyy')


# 通过xpath定位
# input_tag = driver.find_element_by_xpath('//input[@id="kw"]')
# input_tag.send_keys('python')

input_tag = driver.find_element(By.XPATH, '//input[@id="kw"]')
input_tag.send_keys('python')

# 通过标签定位(很少用)
# head_tag = driver.find_element_by_tag_name('head')
# print(head_tag)

select选择下拉框

1、from selenium.webdriver.support.ui import Select 导入
select类
2、定位select标签 把定位到的select标签作为参数传进Select中
3、选择
通过值(value)进行选择

# 1、导入
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
# AttributeError: 'WebElement' object has no attribute 'select_by_value'

# 2、加载驱动
driver = webdriver.Chrome()

driver.get("https://www.17sucai.com/pins/demo-show?id=5926")

# 定位到下拉框
# select_tag = driver.find_element_by_class_name("nojs")

# 选择下拉元素 第一种是根据值进行选择
"""
iframe
html标签
文档中的文档

如果以后碰到这种:# selenium.common.exceptions.NoSuchElementException: Message: no
# such element: Unable to locate element: {"method":"css selector","selector":".nojs"}
就在element中检测有误iframe标签
如果有 查看在这个标签中有没有连接
如果有 则先进入该链接再进行操作
"""
# select_tag.select_by_value('AU')
# selenium.common.exceptions.NoSuchElementException: Message: no
# such element: Unable to locate element: {"method":"css selector","selector":".nojs"}
iframe_tag = driver.find_element_by_id('iframe')
# 再切换
# 老切换方法
# driver.switch_to_frame(iframe_tag)
# 新切换方法
driver.switch_to.frame(iframe_tag)
# 定位到下拉框
select_tag = Select(driver.find_element_by_class_name("nojs"))
# 选择下拉元素 第一种是根据值进行选择
select_tag.select_by_value('AU')

索引下拉框

1、定位到div标签(要定位到整体的下拉框)
2、点击定位到的div标签
3、进行选择(通过索引进行的选择:copy xpath 或者说 自己写xpath语
句)
tips:在xpath里面用的索引 是从1开始的

# 1、导入
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select

# AttributeError: 'WebElement' object has no attribute 'select_by_value'

# 2、加载驱动
driver = webdriver.Chrome()

driver.get("https://www.17sucai.com/pins/demo-show?id=5926")

iframe_tag = driver.find_element_by_id('iframe')
# 再切换
# 老切换方法
# driver.switch_to_frame(iframe_tag)
# 新切换方法
driver.switch_to.frame(iframe_tag)
# 定位div
div_tag = driver.find_element_by_id('dk_container_country-nofake')
div_tag.click()
time.sleep(1)
# 选择
# driver.find_element_by_xpath('//*[@id="dk_container_country-nofake"]/div/ul/li[3]/a').click()
driver.find_element_by_xpath('//*[@class="dk_options_inner"]/li[2]/a').click()

扩展知识补充

iframe
html标签
文档中的文档
如果以后碰到这种: selenium.common.exceptions.NoSuchElementException: Message: no
such element: Unable to locate element: {“method”:“css selector”,“selector”:“.nojs”}
就在element中检测有误iframe标签
如果有 查看在这个标签中有没有连接
如果有 则先进入该链接再进行操作

selenium操作总结

1、导入:from selenium import webdriver
2、加载驱动:driver = webdriver.Chrome()
需要把驱动放到python安装路径下
python安装路径怎么查: 在cmd中输入 where python

3、定位元素
一种是 driver.find_element_by_class_name(‘xxx’) 可以使用id、
class、xpath等等
另一大种 driver.find_element(By.ID, ‘xxx’) 可以使用id、
class、xpath等等
By使用前需要先导入:from selenium.webdriver.common.by import
By

4、操作元素
输入内容:send_keys()
清空内容:clear()
点击:click()

5、操作下拉框(看下拉框是不是放在select标签中的)
‐ 操作select下拉框()
5.1.1 导入:from selenium.webdriver.support.ui import
Select

5.1.2 定位select标签select_tag ‐‐> Select(select_tag)
5.1.3 在下拉框中进行选择(根据值进行选择的)
select_tag.select_by_value(‘AU’)
‐ 操作非select下拉框
5.2.1 定位到整体的div标签
5.2.2 点击定位到的div标签
5.2.3 选择(没有很明显的属性值辅助定位标签 通过索引进行定
位 索引究竟是0还是从1开始的 测试一下就知道了)

6、iframe(见上文)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩猩文学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值