【WebDriver API】用By定位元素&浏览器的简单操作

本文介绍了如何使用WebDriver API通过By定位网页元素,包括ID、NAME、CLASS_NAME等多种方式。同时,讲解了如何控制浏览器,如设置窗口大小、模拟后退和前进、刷新页面。此外,还提到了利用WebElement接口进行登录操作,以及submit()、clear()、click()等方法的使用。最后,探讨了ActionChains类实现的鼠标和键盘事件,包括鼠标右击、双击、拖放和键盘按键操作。文章还强调了自动化测试中的验证信息获取,如title、URL和text的用途。

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

一、用By定位元素

WebDriver提供另一套书写方法,即统一调用find_element()方法,通过By来声明定位的方法,并且传入对应定位方法的定位参数。具体如下:

find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,"新闻")
find_element(By.PARTIAL_LINK_TEXT,"新")
find_element(By.XPATH,"//*[@class='s_ipt']")
find_element(By.CSS_SELECTOR,"span.s_ipt_wr>input#kw")

find_element()方法只用于定位元素。它需要两个参数,第一个参数是定位的类型,有By提供:第二个参数是定位的具体方式。在使用By之前需要将By类导入。

from selenium.webdriver.common.by import By

二、控制浏览器

1.控制浏览器窗口大小

例如移动端大小为480*800,然后访问移动站点,WebDriver提供了set_window_size()方法来设置浏览器的大小。

from selenium import webdriver
driver=webdriver.Firefox()
driver.get("http://m.mail.10086.cn")
#参数数字为像素点
print("设置浏览器宽480、高800显示")
driver.set_window_size(480,800)
driver.quit()
在PC端执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行,那么可以使用maximize_window()方法使打开的浏览器全屏显示,其用法与set_window_size相同,但它不需要参数。
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("http://m.mail.10086.cn")
print("设置全屏显示")
driver.maximize_window()
driver.quit()

2、控制浏览器后退、前进

在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地浏览过的网页之间的切换,WebDriver也提供了对应的back()和forward()方法来模拟后退和前进按钮。

from selenium import webdriver

driver=webdriver.Firefox()

#访问百度首页
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()

输出结果为:

now access http://www.baidu.com
now access http://news.baidu.com
Back to http://www.baidu.com
forward to http://news.baidu.com

3、模拟浏览器刷新

driver.refresh() #刷新当前页面

三、简单元素登陆

认识WebDriver中最常用的几个方法:

  • clear():清除文本
  • send_keys(*value):模拟按键输入
  • click():单击元素

例子:优快云登陆

from selenium import webdriver
from time import sleep

driver=webdriver.Chrome()
driver.get("https://www.youkuaiyun.com")

driver.find_element_by_class_name("userinfo").click()

driver.find_element_by_link_text("账号登录").click()

driver.find_element_by_id("all").clear()
driver.find_element_by_id("all").se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值