selenium--元素的定位

一个简单的脚本:

# coding = utf-8  #编码格式
from selenium import webdriver   #导入包 导入了selenium下的webdirver
import time  #导入包  
#正文
browser = webdriver.Chrome() #获得谷歌浏览器的驱动,也可以使用其他浏览的驱动,但是浏览器第一个字母要大写
time.sleep(3) #等待3s
browser.get("http://www.baidu.com") #打开百度网页
time.sleep(3)
browser.find_element_by_id("kw").send_keys("selenium") #定位输入框输入selenium
time.sleep(3)
browser.find_element_by_id("su").click()  #定位输入框点击百度一下
browser.quit()  #关闭浏览器

browser.quit()
close方法关闭当前的浏览器窗口,quit方法不仅关闭窗口,还会彻底的退出webdriver,释放与driver server之间的连接。所以简单来说quit是更加彻底的close,quit会更好的释放资源

简单脚本的构成:

1.在脚本头部导入需要的包
2.获取浏览器的驱动
3.使用浏览器驱动对需要测试的文本系统进行操作
4.关闭浏览器

元素的定位

定位前提:
1.元素必须拥有这个属性
2.元素的属性必须全局唯一
webdriver 提供了一系列的对象定位方法,常用的有以下几种

  • id 肯定可以唯一定位到一个元素
  • name 不一定全局唯一,很有可能定位不到
  • class name 不一定全局唯一,很有可能定位不到
  • link text 很有可能定位不到 定位超链接文本(标签)
  • partial link text 很有可能定位不到。partial_link_text定位是对link_text定位的补充,partial_link_text为模糊匹配;link_text全部匹配
  • tag name 通过标签名来定位 .例如input定位
  • xpath 肯定可以定位到元素
  • css selector 选中要定位的元素,右击,选中检查
    在这里插入图片描述

id是全局唯一的

from selenium import webdriver
import time

dirver=webdriver.Chrome()
url="https://www.baidu.com/"
dirver.get(url)
#用id定位百度搜索框
dirver.find_element_by_id("kw").send_keys("刘亦菲")
dirver.find_element_by_id("su").click()
time.sleep(6)

dirver.quit()

from selenium import webdriver
import time

dirver=webdriver.Chrome()
url="http://127.0.0.1:88/zentao/user-login.html"
dirver.get(url)

#用name来定位
dirver.find_element_by_name("account").send_keys("admin")
dirver.find_element_by_name("password").send_keys("xxxxxxx")
dirver.find_element_by_id("submit").click()
time.sleep(6)
dirver.quit()

xpath:右击input框,选择copy,直接选择复制xpath在这里插入图片描述

#xpath定位百度搜索框
dirver.find_element_by_xpath("//*[@id='kw']").send_keys("刘亦菲") #右击copy,可以直接复制xpath
dirver.find_element_by_xpath("//*[@id='su']").click()

css selector定位
在这里插入图片描述

#css selector定位百度搜索框
dirver.find_element_by_css_selector("#kw").send_keys("刘亦菲")
dirver.find_element_by_css_selector("#su").click()
time.sleep(6)

dirver.quit()

clear 清除输入框的内容

#清楚输入框内容
dirver.find_element_by_css_selector("#kw").send_keys("刘亦菲")
dirver.find_element_by_css_selector("#su").click()
time.sleep(6)
#清楚文本内容
dirver.find_element_by_id("kw").clear()
dirver.find_element_by_css_selector("#kw").send_keys("西安")
dirver.find_element_by_css_selector("#su").click()
time.sleep(6)

submit 提交表单

只有type类型为submit才可以使用submit提交

from selenium import webdriver
import time

dirver=webdriver.Chrome()
url="https://www.baidu.com/"
dirver.get(url)
#用id定位百度搜索框
dirver.find_element_by_id("kw").send_keys("刘亦菲")
#提交表单,作用和click作用一样
dirver.find_element_by_id("su").submit()
time.sleep(6)

dirver.quit()

text 获取文本内容

#text 获取文本内容
text=dirver.find_element_by_id("s-top-left").text
print(text)

添加等待

from selenium import webdriver
import time

dirver=webdriver.Chrome()
url="https://www.baidu.com/"
dirver.get(url)
#用id定位百度搜索框
dirver.find_element_by_id("kw").send_keys("刘亦菲")
dirver.find_element_by_id("su").submit()
#固定等待,严格执行等待的时间
#time.sleep(10)
#智能等待
dirver.implicitly_wait(10)
dirver.find_element_by_link_text("刘亦菲(华语影视女演员、歌手) - 百度百科").click()
time.sleep(6)
dirver.quit()

打印title和url

#打印
from selenium import webdriver
import time

dirver=webdriver.Chrome()

dirver.get("https://www.baidu.com/")
dirver.maximize_window()
title0=dirver.title
print(title0)
#用id定位百度搜索框
dirver.find_element_by_id("kw").send_keys("刘亦菲")
dirver.find_element_by_id("su").submit()
#固定等待
time.sleep(6)
#智能等待
#dirver.implicitly_wait(10)
#dirver.find_element_by_link_text("刘亦菲(华语影视女演员、歌手) - 百度百科").click()
title=dirver.title
print(title)
dirver.quit()

在这里插入图片描述

title=dirver.title
url=dirver.current_url
print(title)
print(url)
dirver.quit()

在这里插入图片描述

浏览器的最大化

dirver.maximize_window()

设置浏览器的宽高

#设置浏览器的宽高,前面是宽,后面是高
dirver.set_window_size(400,800)

浏览器的前进后退

#浏览器的后退
dirver.back()
time.sleep(6)
#浏览器的前进
dirver.forward()
time.sleep(6)

浏览器控制条的下拉和上拉到顶端

from selenium import webdriver
import time

dirver=webdriver.Chrome()
url="https://www.baidu.com/"
dirver.get(url)
#用id定位百度搜索框
dirver.find_element_by_id("kw").send_keys("刘亦菲")
dirver.find_element_by_id("su").click()

#浏览器控制条的下拉
js1="var q=document.documentElement.scrollTop=10000"
dirver.execute_script(js1)
time.sleep(6)

#浏览器控制条拉到最顶端
js2="var q=document.documentElement.scrollTop=0"
dirver.execute_script(js2)
time.sleep(6)
dirver.quit()

键盘事件

enter键直接登录

#键盘事件
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys

dirver=webdriver.Chrome()
url="http://127.0.0.1:88/zentao/user-login.html"
dirver.get(url)
dirver.maximize_window()
#登录
dirver.find_element_by_id("account").send_keys("admin")
dirver.find_element_by_name("password").send_keys
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值