selenium的应用之元素选取

本文介绍如何使用Python3中的Selenium库进行网页自动化操作,包括安装配置、常见方法及元素定位技巧等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python3中selenium的应用

安装selenium库

selenium是python中的一个第三方库

pip install selenium

下载浏览器驱动

各浏览器下载地址:

Firefox浏览器驱动:geckodriver

Chrome浏览器驱动:chromedriver

Edge浏览器驱动:MicrosoftWebDriver

Opera浏览器驱动:operadriver

设置浏览器驱动

我们可以手动创建一个存放浏览器驱动的目录,如:E:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。

将“E:\driver”目录添加到Path的值中。

from selenium import webdriver #导入驱动模块

driver = webdriver.Firefox()   # Firefox浏览器

driver = webdriver.Chrome()    # Chrome浏览器

driver = webdriver.Edge()      # Edge浏览器

driver = webdriver.Opera()     # Opera浏览器

selenium常用方法

text :获取文本内容

click():点击操作

submit:提交 操作可以和click交替着使用

send_keys:使用内容的

maximize_window():最大化浏览器

minimize_window():最小化浏览器

get : 打开一个网址
    
driver.quit():关闭浏览器

is_displayed:判断元素是否可见

quit()退出浏览器,会关闭掉所有的标签页面
close()只能关闭初始一个标签页

selenium元素定位方法

Selenium提供了8种定位方式

id
name
class name
tag name
link text
partial link text
xpath
css selector

selenium选择元素的方法


·find_element_by_css_selector:通过元素的class选择
如:<div class='bdy-inner'>test</div>
可以使用:find_element_by_css_selector('div.bdy-inner')。

·find_element_by_xpath:通过xpath选择
如:<form id="loginForm">
可以使用driver.find_element_by_xpath("//form[@id='loginForm']")。

·find_element_by_id:通过元素的id选择
如:<div id='bdy-inner'>test</div>
可以使用:driver.find_element_by_id('bdy-inner')。

·find_element_by_name:通过元素的name选择
如<input name="username"type="text"/>
可以使用:driver.find_element_by_name('password')。

·find_element_by_link_text:通过链接地址选择
如<a href="continue.html">Continue</a>
可以使用:driver.find_element_by_link_text('Continue')。

·find_element_by_partial_link_text:通过链接的部分地址选择
如<a href="continue.html">Continue</a>
可以使用:driver.find_element_by_partial_link_text('Conti')。

·find_element_by_tag_name:通过元素的名称选择
如<h1>Welcome</h1>
可以使用:driver.find_element_by_tag_name('h1')。

·find_element_by_class_name:通过元素的class选择
如<p class="content">Site content goes here.</p>
可以使用:driver.find_element_by_class_name('content')

web网页元素查看

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
id定位:
dr.find_element_by_id("kw")
name定位:
dr.find_element_by_name("wd")
class name定位:
dr.find_element_by_class_name("s_ipt")
tag name定位:
dr.find_element_by_tag_name("input")
link text定位:
dr.find_element_by_link_text("新闻")
dr.find_element_by_link_text("hao123")
partial_link_text定位:
dr.find_element_by_partial_link_text("新")
dr.find_element_by_partial_link_text("hao")
dr.find_element_by_partial_link_text("123")
xpath定位,常用写法:
dr.find_element_by_xpath("//*[@id='kw']")
dr.find_element_by_xpath("//*[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")
dr.find_element_by_xpath("/html/body/form/span/input")
dr.find_element_by_xpath("//span[@class='soutu-btn']/input")
dr.find_element_by_xpath("//form[@id='form']/span/input")
dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")
css定位,常用写法:
dr.find_element_by_css_selector("#kw")
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector(".s_ipt")
dr.find_element_by_css_selector("html > body > form > span > input")
dr.find_element_by_css_selector("span.soutu-btn> input#kw")
dr.find_element_by_css_selector("form#form > span > input")

selenium元素选取实例

#元素定位,导入浏览器驱动模块
from selenium import webdriver
import time
#创建一个Chrome浏览器
driver = webdriver.Chrome()
#隐式等待
driver.implicitly_wait(10)

#浏览器最大化
driver.maximize_window()
# 参数数字为像素点
driver.set_window_size(480, 800)

# 打开指定的网页(URL就是指网址)
driver.get("http://www.baidu.com")

#定位输入框 输入内容
#方法一:id
driver.find_element_by_id('kw').send_keys("天气预报")
#方法二:name
driver.find_element_by_name('wd').send_keys("今日头条")
#方法三:class
driver.find_element_by_class_name('s_ipt').send_keys("新闻")

#方法四:css
driver.find_element_by_css_selector('.s_ipt').send_keys("阅兵")  #class:.s_ipt
driver.find_element_by_css_selector('#kw').send_keys("明星")  #id:kw

#方法五:xpath
driver.find_element_by_xpath("//input[@id='kw']").send_keys("女神")

# <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100"autocomplete="off">
# //input[@id='kw']

#点击 百度一下
driver.find_element_by_id('su').click()
# <input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">

选取元素的优先级:id name  class tag_name   link_text  css  xpath
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

patmos

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

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

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

打赏作者

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

抵扣说明:

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

余额充值