selenium安装并使用

1、首先要有python安装环境

2、Selenium环境的安装主要就是安装两样东西: 客户端库 和 浏览器 驱动

  • 安装客户端库
    cmd命令符:pip install selenium
    在这里插入图片描述
    教程:www.python3.vip
  • 安装浏览器驱动,根据Google浏览器的版本来安装对应的驱动
    驱动安装地址
    这是个zip包,下载下来之后,解压里面的程序文件 chromedriver.exe 到某个目录下面
    注意这个目录的路径最好是没有中文名和空格的
    比如,解压到 d:\webdrivers 目录下面。
    也就是保证我们的Chrome浏览器驱动路径为 d:\webdrivers\chromedriver.exe

3、下载pycharm并写一个简单示例

from selenium import webdriver

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'd:\chromedriver\chromedriver.exe')

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('http://python3.vip')
pass

4、选择界面元素

1、根据 元素的id 属性选择元素find_element_by_id

  1. 想要让浏览器自动化输入一句话,需要操控界面元素
  2. 想要操控界面元素就需要获取界面元素或者定位界面元素
  3. 找到界面元素、操控他
  4. 打开百度,找到输入框可以定位的唯一标识id
    在这里插入图片描述
from selenium import webdriver

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'd:\chromedriver\chromedriver.exe')

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com/')#get方式请求
element = wd.find_element_by_id('kw')#唯一标识id
element.send_keys("李慕陈\n")
pass

  • 浏览器,找到id为kw的元素后,将结果通过 浏览器驱动 返回给 自动化程序, 所以 find_element_by_id 方法会 返回一个
    WebElement 类型的对象。

    这个WebElement 对象可以看成是对应 页面元素 的遥控器。

    我们通过这个WebElement对象,就可以 操控 对应的界面元素。

    比如 :

    调用这个对象的 send_keys 方法就可以在对应的元素中 输入字符串,

    调用这个对象的 click 方法就可以 点击 该元素。
    2、根据 class属性 选择元素find_elements_by_class_name(返回值是webelement对象)

  • 使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表

from selenium import webdriver

wd = webdriver.Chrome(r'd:\chromedriver\chromedriver.exe')#要和自己的安装的位置一致哦!

wd.get('http://cdn1.python3.vip/files/selenium/sample1.html')

# 根据 tag name 选择元素,返回的是 一个列表
# 里面 都是 tag 名为 div 的元素对应的 WebElement对象
elements = wd.find_elements_by_tag_name('div')
# 取出列表中的每个 WebElement对象,打印出其text属性的值
# text属性就是该 WebElement对象对应的元素在网页中的文本内容
for element in elements:
    print(element.text)

在这里插入图片描述

  • 使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出
    NoSuchElementException 异常
from selenium import webdriver
wb = webdriver.Chrome(r'd:\chromedriver\chromedriver.exe')
wb.get("http://cdn1.python3.vip/files/selenium/sample1.html")
elements= wb.find_element_by_class_name("plant")
print(elements.text)
pass

总结:find_element 和 find_elements 的区别
使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表
使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常
3、通过WebElement对象选择元素
WebElement与WebDriver区别:
WebDriver 对象 选择元素的范围是 整个 web页面
WebElement 对象 选择元素的范围是 该元素的内部

4、等待页面出现
当send_keys之后,获取id元素并且输出的时候会出现NoSuchElementException错误,
因为浏览器需要把这个搜索请求发送给百度服务器, 百度服务器进行处理后,把搜索结果返回给我们。
所以,从点击搜索到得到结果,需要一定的时间
我们等等"ta"

from selenium import webdriver
wb = webdriver.Chrome(r'd:\chromedriver\chromedriver.exe')
wb.get('https://www.baidu.com/')
element = wb.find_element_by_id("kw")
element.send_keys("lidonh\n")
from time import  sleep# 从time库用sleep模块
sleep(2)#等待两秒
element  = wb.find_element_by_id("1")
print(element.text)
pass

但是这样会有一个问题,不知道等待多久合适,selenium给出一个解决方案wd.implicitly_wait(10)
它的作用是找不到该元素就每隔半秒再去界面查看一次,里面的参数是最大等待时间
在一个脚本中只需要使用次(作用范围是针对整个webdriver对象实例)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值