充值网站 模板,无锡网页制作报价,免费申请手机号,电商培训机构有哪些?哪家比较好selenium脚本编写
上篇文章介绍了selenium环境搭建#xff0c;搭建好之后就可以开始写代码了
基础脚本,打开一个网址
from selenium import webdriver
driver webdriver.Chrome()#打开chrome浏览器
driver.get(https://www.baidu.com) #打开百度打开本地HTML文件
上篇文章…selenium脚本编写
上篇文章介绍了selenium环境搭建搭建好之后就可以开始写代码了
基础脚本,打开一个网址
from selenium import webdriver
driver webdriver.Chrome()#打开chrome浏览器
driver.get(https://www.baidu.com) #打开百度打开本地HTML文件
上篇文章我自己写了一个html文件放在了当前路径下 第一种方式
通过绝对路径打开
from selenium import webdriver
driver webdriver.Chrome()#打开chrome浏览器
driver.get(rD:\sele_study\2-selenium\day1_sele\test.html)第二种方式
通过相对路径打开
本质上也是通过方法把相对路径转为绝对路径
#第一种转为绝对路径的方法
from selenium import webdriver
from pathlib import Path#pathlib路径处理库
driver webdriver.Chrome()#打开chrome浏览器
html Path(./test.html)
driver.get(str(html.resolve()))#Path.resolve:该方法将一些的 路径/路径段 解析为绝对路径#第二种转为绝对路径的方法
from selenium import webdriver
import os
html os.path.abspath(./test.html)#返回绝对路径
driver webdriver.Chrome()
driver.get(html)
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号485187702【暗号csdn11】 优雅地打开浏览器with
用with打开浏览器不用手工关闭
from selenium import webdriver
from time import sleep
with webdriver.Chrome() as driver:#with上下文管理器不需要我去关闭driver.get(https://www.baidu.com)#打开百度sleep(5)#等5秒自动关闭认识webdriver对象方法和属性
初识元素定位方法
#祖宗方法
find_element
#通过class属性的值定位(底层是css)
find_element_by_class_name
#√√√通过css 选择器定位(推荐最快)
find_element_by_css_selector
#√通过id的值定位(底层是css)
find_element_by_id
#√通过a标签的文本定位(底层是XPATH)
find_element_by_link_text
#通过name属性的值来定位(底层是css)
find_element_by_name
#通过a标签的部分文本定位模糊匹配(底层是XPATH)
find_element_by_partial_link_text
#通过标签名来定位(底层是css)
find_element_by_tag_name
#√√通过xpath方法定位(慢)
find_element_by_xpath #以下方法的用法同上只是返回的是一组元素列表形式
find_elements
find_elements_by_class_name
find_elements_by_css_selector
find_elements_by_id
find_elements_by_link_text
find_elements_by_name
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_xpath除了祖宗方法其他八种定位方式被大家称为‘selenium八大元素定位’
可以配合HTML全局属性介绍来理解这些方法。
HTML全局属性介绍https://www.w3school.com.cn/tags/html_ref_standardattributes.asp
用法示例
以下方法演示用的是我们上篇文章写的HTML文件
需要的朋友可以去上篇文章复制或公众号后台输入‘html练习’获取源文件
find_element_by_name
通过name属性的值来定位
from selenium import webdriver
from pathlib import Path
from time import sleep
with webdriver.Chrome() as driver:#打开chrome浏览器html Path(./test.html)driver.get(str(html.resolve()))#Path.resolve:该方法将一些的 路径/路径段 解析为绝对路径driver.find_element_by_name(username).send_keys(admin)#找到name的值为username的标签并输入adminsleep(5)#5秒后关闭知识点
1.如果遇到重复的元素操作的永远是第一个
2.send_keys方法不会清空原来的内容
find_element_by_id
通过id的值定位
from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:html os.path.abspath(./test.html)#获取绝对路径driver.get(html)driver.find_element_by_id(username).send_keys(admin)#找到id的值为username的标签并输入adminsleep(5)知识点
1.id是唯一的
2.可能会变需要注意识别
3.首字符是数字的要注意css的表达式后续详细介绍
find_element_by_class_name
通过class属性的值定位
from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:html os.path.abspath(./test.html)#获取绝对路径driver.get(html)# 1. 输入用户名driver.find_element_by_class_name(aa).send_keys(admin)#找到class的值为aa的标签并输入admin# 2. 输入密码# driver.find_element_by_class_name(bb cc).send_keys(123456)--错误写法driver.find_element_by_class_name(bb).send_keys(pass)#找到class的值为bb的标签输入passdriver.find_element_by_class_name(cc).send_keys(word)#找到class的值为cc的标签输入wordsleep(5)知识点
1.class也容易重复
2.class bb cc规定元素的一个或多个类名等同于class1,class2bb,cc
所以不能直接用driver.find_element_by_class_name(bb cc)
find_element_by_link_text
通过a标签的全文本定位需要文本完全匹配
from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:html os.path.abspath(./test.html)#获取绝对路径driver.get(html)driver.find_element_by_link_text(百度一下,你就不知道).click()#找到文本为百度一下,你就不知道文本的a标签并点击sleep(5)#等待5秒关闭
find_element_by_partial_link_text
通过a标签的部分文本定位模糊匹配
#方法二模糊匹配
from selenium import webdriver
import os
from time import sleep
with webdriver.Chrome() as driver:html os.path.abspath(./test.html)#获取绝对路径driver.get(html)driver.find_element_by_partial_link_text(必应).click()#找到包含必应文本的a标签并点击sleep(5)#等待5秒关闭
知识点
1.link_text 的两种定位方式只适用于a标签的文本
2.link_text 完全匹配
3.parti_link_text 部分模糊可以是开头是、包含、结尾是
4.click()点击
find_element_by_tag_name
通过标签名来定位因为重复特别多所以很少用不做介绍。
find_element_by_css_selector
通过css 选择器定位(推荐最快)
内容比较多且重要之后单独文章做介绍。
find_element_by_xpath
通过xpath方法定位
内容比较多且重要之后文章单独介绍。
最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 希望能帮助到你【100%无套路免费领取】