day02-WebDriver:操作整个浏览器和当前整个页面

这篇博客详细介绍了WebDriver如何操作整个浏览器和当前页面,包括打开网址、回退、前进、刷新,调整窗口大小,处理cookies,以及各种WebElement的操作,如点击、输入、获取属性等。还特别提醒了截图命名的注意事项以及各种操作的具体方法。

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

driver的一些页面操作

  • WebDriver:操作整个浏览器和当前整个页面
    • 当前页面上的选择符合查找条件的对象
    • 打开网址,回退,前进,刷新网页
    • 获取,改变浏览器窗口大小,关闭浏览器,截屏
    • 获取、设置cookies
  • WebElement:操作对应web元素
    • 当前web元素的所有后代元素里面符合查找条件的对象
    • 操作该web元素:比如:
      点击元素
      输入字符
      获取元素坐标。尺寸、文本内容、其他的属性信息

基础配置:

from selenium import webdriver
import time
from  selenium.webdriver.common.by import By
driver=webdriver.Chrome(r'C:\workspace\chromedriver.exe')
driver.get('https://www.baidu.com/')
driver.implicitly_wait(10)

操作1:title、url,后退、前进、刷新

print(driver.title)    #获得当前页面的title
#百度一下,你就知道
print(driver.find_element_by_tag_name('title').text)  #不行,
#driver.title可以,title定义在head标签内,不在网页的可见范围,
#driver.find是真对boby内容的
print(driver.current_url)  #获得当前页面的url
#https://www.baidu.com/
driver.back()     #后退
driver.forward()    #前进
driver.refresh()     #刷新
#注意:后退、前进、刷新,要看是不是在当前页面,如果是打开新页面要切换页面后再操作

操作2:截图
注意:截图不要取相同的名称不然会覆盖

driver.screenshot_as_file('day02_baidu.png') 相对路径
# 直接写图片名,默认保存在当前.py文件的路径里
driver.screenshot_as_file(r'D:\baidu.png')  绝对路径
 #把截图的照片保存到本地,相当于代码当前的路径

操作3:find_element()
注意:参数为(通过什么元素来寻找,值是多少),值的格式根据什么方式有关系

eleById=driver.find_element(By.CSS_SELECTOR,'#u_sp>a')
print(eleById.text)
eleById=driver.find_elements(By.CSS_SELECTOR,'[id="u_sp"]')
for i in eleById:
    print(i)

操作4:get_attribute() 获取该元素的值
注意:获得某个元素的属性的值,输入的是属性名

源代码:
<input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
eleButton=driver.find_element_by_id('su')
print(eleButton.get_attribute('class'))  
#bg s_btn
print(eleButton.get_attribute('value'))
#百度一下
print(eleButton.get_attribute('type'))
#submit

操作5:获得某个元素的片段;outerHTML / innerHTML

eleDivA=driver.find_element_by_id('u1') 
print(eleDivA.get_attribute('outerHTML')) #打印出片段包括父类标签
#如下是输出的内容
<div id="u1">
	<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
	<a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
	<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
	<a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
	<a href="http://tieba.baidu.com" name="tj_trtieba" class="mnav">贴吧</a>
	<a href="http://xueshu.baidu.com" name="tj_trxueshu" class="mnav">学术</a>
</div>
print(eleDivA.get_attribute('innerHTML')) #打印的片段不包括父类标签
#如下是输出的内容
	<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
	<a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
	<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
	<a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
	<a href="http://tieba.baidu.com" name="tj_trtieba" class="mnav">贴吧</a>
	<a href="http://xueshu.baidu.com" name="tj_trxueshu" class="mnav">学术</a>

操作6: 屏幕大小设置
注意:屏幕的原点是从右上角开始

#最大化
driver.maximize_window()
#最小化
driver.minimize_window()
#设置指定的大小(单位:像素),3个参数,2个必填
#set_window_size(self, width, height, windowHandle='current')
driver.set_window_size(800,600)

操作7: 获取窗口尺寸
说明:元素的原点是元素的右上角

 1)获取窗口页面尺寸————返回的是一个字典,有高和宽2个元素
 size=driver.get_window_size()
 print(f'高度是{size["height"]}')
 #806
 print(f'宽度是{size["width"]}')
 #1051

操作8:获取元素窗口尺寸

获取元素窗口尺寸————返回的是一个字典,有高和宽2个元素
 butt=driver.find_element_by_id('su')
 e_size=butt.size
 print(f'按钮高度是{e_size["height"]}')
 print(f'按钮宽度是{e_size["width"]}')

操作9:获取窗口当前的位置

获取窗口当前的位置(坐标),单位:像素
loc=driver.get_window_position()
#得到的窗口的位置也是返回的是字典类型
print(f'窗口x坐标是:{loc["x"]},y坐标是:{loc["y"]}')
#窗口x坐标是:9,y坐标是:9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值