Web自动化-03-Selenium

Selenium

一、WebDriver的常用方法

方法描述
get()在浏览器中打开网址
maximize_window()最大化浏览器窗口
minimize_window()最小化浏览器窗口
set_window_size(长, 宽)设置窗口大小,参数为像素
back()后退
forward()前进
refresh()刷新
close()关闭当前窗口
quit()关闭所有窗口
  • 案例:百度在搜索关键字
from selenium import webdriver


# 1. 实例化一个webdriver对象,相当打开浏览器
wd = webdriver.Edge()
print(wd)           # WebDriver实例中保存浏览器的会话

# 2. 打开指定的页面
wd.get('https://www.baidu.com/')

# 3. 窗口最大化
wd.maximize_window()
time.sleep(2)
#
# # 4. 设置窗口的大小
wd.set_window_size(1024, 768)
time.sleep(3)
# 5. 窗口最小化
# wd.minimize_window()

# 6. 定位搜索框:
# we == WebElement
we = wd.find_element_by_css_selector('#kw')
print(we)
#
# 7. 输入要搜索的内容(操作元素)
we.send_keys('Python')

# 8. 点击搜索按钮
wd.find_element_by_css_selector('#su').click()
time.sleep(2)

# 9. 后退
wd.back()

time.sleep(2)
# 10. 前进
wd.forward()
time.sleep(2)
# 11. 刷新页面
wd.refresh()
  • 案例2:close()方法的含义

打开百度首页之后 ,再点击页面中“学术”按钮。
使用close()关闭窗口,观察效果。(句柄)

""" 需求:
打开百度首页之后 ,再点击页面中“学术”按钮。
使用close()关闭窗口,观察效果。(句柄)
"""
print(wd.current_window_handle)     # 表示当前 webdriver指向的页面的焦点
wd.find_element_by_css_selector('#s-top-left > a:nth-child(7)').click()
print(wd.current_window_handle)

wd.close()          # 关闭一个标签页面,关闭的是当前webdriver的焦点页面
wd.quit()  				# 关闭所有窗口

二、定位元素的方法

定位方式描述
find_element_by_id通过元素的id来定位,id是唯一的,较常用
find_element_by_name通过元素的name属性来定位,name可能不唯一
find_element_by_class_name通过class属性定位元素,一般定位多个,默认返回第一个元素
find_element_by_tag_name通过标签名定位元素,不常用
find_element_by_link_text通过文案来定位元素,需要填写完整的链接文案内容
find_element_by_partial_link_text需要填写部分文案内容
find_element_by_css_seletor通过CSS选择器来定位元素
find_element_by_xpath通过XPATH来定位元素

2.1 find_element_by_id

# 一个标签元素定义了id属性,那么这个id的值在当前页面中是唯一
we_id = wd.find_element_by_id('kw')
print(we_id.get_attribute('outerHTML'))     # outerHTML 获取页面整个元素
print(we_id.get_attribute('id'))            # 如果输入的是属性名,则获取的是属性值

2.2 find_element_by_name

we_name = wd.find_element_by_name('wd')
print(we_name.get_attribute('outerHTML'))

2.3 find_element_by_class_name

we_class = wd.find_element_by_class_name('s_ipt')
print(we_class.get_attribute('outerHTML'))

2.4 find_element_by_tag_name

we_tags = wd.find_elements_by_tag_name('input')
print(type(we_tags))		# <class 'list'>
for ele in we_tags:
    print(ele.get_attribute('outerHTML'))

2.5 find_element_by_link_text

wd.find_element_by_link_text('学术').click()

2.6 find_element_by_partial_link_text

wd.find_element_by_partial_link_text('学').click()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值