selenium自动化webdriver API初识

举报
bug郭 发表于 2022/11/30 16:20:50 2022/11/30
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,...

大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

webdriver API

一个简单自动化脚本的构成如下

'''
简单自动化测试脚本基本结构
'''
# 防止乱码,编译器下默认是utf-8可以省略!
# coding = utf-8
# 导入selenium中的webdriver工具包为了获取浏览器的控制驱动!
from selenium import webdriver
# 导入时间模块,设置暂停时间为了更好的看到自动化测试效果
import time
# 获得Chrome浏览器的驱动,需要先安装了与之对应的浏览器驱动包
driver = webdriver.Chrome()
#在浏览器中打开url链接
driver.get('https://www.csdn.net/')
# 暂停3秒,为了更好的看到执行效果
time.sleep(3)
# 通过元素的id定位到需要操作的元素,并且向元素输入响应的文本内容
driver.find_element_by_id('toolbar-search-input').send_keys('bug郭')
time.sleep(3)
# 这里定位到元素,执行点击操作
driver.find_element_by_id('toolbar-search-button').click()
time.sleep(3)
# 退出并关闭窗口
driver.quit()

运行效果:
在这里插入图片描述

dirver.close()也可以关闭窗口。两者的区别是:
close方法关闭当前的浏览器窗口,quit方法不仅关闭窗口,还会彻底的退出webdriver,释放与driverserver之间的连接。所以简单来说quit是更加彻底的closequit会更好的释放资源!

元素定位

对象定位是自动化测试脚本的核心,要想操作一个对象,我们要想拿到这个对象,而一个对象就和人一样有各种特征属性:我们可以通过一个人的姓名,身份证号,住址找到这个人!而我们html元素也一样!

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

通过上面的属性我们都可以定位到一个元素!
但是需要注意的是我们要获取的对象有该属性,并且属性值唯一才可进行定位!

通过多种定位方式对百度的输入框进行定位!

# 多种定位方式定位到百度的输入框!
import time
from selenium import webdriver
# 拿到谷歌的驱动
driver = webdriver.Chrome()
# 使浏览器窗口最大化
driver.maximize_window()
# 打开百度的url
driver.get('https://www.baidu.com/')
time.sleep(3)
# 多种方式定位到百度输入框!
# 1.通过id进行定位
driver.find_element_by_id('kw').send_keys('鸡')
time.sleep(1)
# 2.通过name进行定位
driver.find_element_by_name('wd').send_keys('你')
time.sleep(1)
# 3.通过classname进行定位
driver.find_element_by_class_name('s_ipt').send_keys('太')
time.sleep(1)
# 4.通过css进行定位
driver.find_element_by_css_selector('#kw').send_keys('美')
time.sleep(1)
# 5.通过xpath进行定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('!')
time.sleep(1)
# 6.通过tag name进行定位,这里type属性不唯一所以定位失败!
#driver.find_element_by_tag_name('text').send_keys('!')
# 定位到搜索按钮然后会车
driver.find_element_by_id('su').click()
time.sleep(3)
# 关闭浏览器并且关闭webdriver连接
driver.quit()

在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。