WebDriver操作浏览器以及浏览器页面元素的方法

上篇文章是讲了WebDriver定位元素的方法,这篇文章就要讲操作了,本文内容篇幅可能会比较长,一个是因为要操作的项目比较多,另一个是我会将完整的代码放进来,总体原则上我还是追求尽量细致一些,以便能方便读者理解。

控制浏览器

WebDriver主要提供了操作页面上各种元素的方法,同时它还提供了操作浏览器的一些方法,如控制浏览器的大小,操作浏览器前进或后退等。
1.控制浏览器窗口大小
如下图,通常自动化操作谷歌页面时,默认打开的页面不是全屏,这个时候,如果你觉得屏幕分辨率不够,或者太大,你可以通过两个方法来控制浏览器窗口的大小
在这里插入图片描述
第一个方法是:set_window_size(),可以设置浏览器窗口的大小,下图是效果

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

print("设置浏览器宽480、高800显示") # 这里设置的数字是分辨率(像素)
driver.set_window_size(480, 800)  
time.sleep(1)
dirver.quit()

在这里插入图片描述

第二个方法是:maximize_window(),可以将浏览器的窗口设为全屏,下图是效果

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

print("浏览器最大化")
driver.maximize_window()  # 将浏览器最大化显示
time.sleep(1)
driver.quit()

在这里插入图片描述
2.控制浏览器后退、前进
在使用Web浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间进行切换,主要是通过Webdriver提供的back()和forward()方法来模拟后退和前进按钮

from selenium import webdriver
import time

driver = webdriver.Chrome()
# 访问百度首页
first_url = "http://www.baidu.com"
print("now access %s" % (first_url))
driver.get(first_url)

# 访问新闻页面
second_url = "http://news.baidu.com"
print("now access %s" % (second_url))
driver.get(second_url)

# 返回到百度首页
print("back to %s" % (first_url))
driver.back()

# 前进到新闻页
print("forward to %s" % (second_url))
driver.forward()

driver.quit()

模拟浏览器刷新

有时候需要手动刷新(F5)Web页面,可以通过refresh()方法实现,driver.refresh(),这个比较简单就不写代码了

Webdriver中的常用方法

1.clear():清除文本
2.send_keys() :模拟按键输入
3.click():单击元素
这三个方法可以在一个代码案例中进行说明

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium库的基本使用")  #在百度输入框中输入内容
time.sleep(3)
driver.find_element_by_id("kw").clear() # 清除百度输入框中的文本
time.sleep(3)
driver.find_element_by_id("kw").send_keys("selenium库的基本使用")  #在百度输入框中输入内容
time.sleep(3)
driver.find_element_by_id("su").click() #点击"百度一下"
time.sleep(3)
driver.quit()

4.submit:提交表单
有时候在输入框内输入了内容,但是却没有搜索按钮,而是通过按键盘上的回车键(Enter)完成搜索内容的提交,现在还可以通过submit()模拟提交,其实submit()作用和click()大体是一样的,只是因为有时候没有搜索按钮才用submit(),click()作用范围远大于submit(),它可以单击任何可以单击的元素,例如,按钮,复选框(有好几个框可以选),单选框,下拉文字链接和图片链接等,而这些submit()确实做不到

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium库的基本使用")  #在百度输入框中输入内容
time.sleep(3)
driver.find_element_by_id("su").submit() #点击"百度一下"
time.sleep(3)
driver.quit()

5.size:返回元素的尺寸
6.text:获取元素的文本
7.get_attribute():获得属性值
8.is_displayed():设置该元素是否用户可见
这四个方法放在一个代码案例中展现,size()方法用于获取百度输入框的宽和高,text()方法用于获得百度底部的备案信息,get_attribute()方法用于获得百度输入框属性的值,is_displayed()方法用于返回一个元素是否可见,如果可见,返回True,否则返回False

# 返回元素的尺寸
# 如:返回百度输入框的宽高
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
size = driver.find_element_by_id("kw").size
print(size)

# 获取元素的文本
# 如:返回百度页面底部备案信息
text = driver.find_element_by_class_name("s-bottom-layer-content").text
print(text)

# 获得属性值
# 返回元素的属性值,可以是id,name,type或元素拥有的其他任意属性
attribute = driver.find_element_by_id("kw")
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值