python-selenium自动化-八大元素定位

在这里我们使用的是谷歌浏览器,需要下载驱动:(百度)

八大元素定位,大同小异

导包

from selenium import webdriver
from selenium.webdriver.common.by import By

1:id定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过id定位)
search_input=driver.find_element(By.ID,'searchKey')
print(search_input.tag_name)#他的标签名
print(search_input.get_attribute("type"))#他的tab
print(search_input.parent)#他的内容

# 4:输入关键字
search_input.send_keys("江少")
# 5:点击搜索
driver.find_element(By.ID,"btnSearch").click()
# 6:验证结果---assert断言
"""断言 判断一个表达式(True/False)
返回是False一触发异常
特点: 条件不满足直接返回错误, 不必在继续了"""
assert driver.title == '全部作品_读书屋', "断言地方有问题"  #若断言不成立,会打印逗号后面的内容
print(f'{driver.title}测试成功')  #driver.title拿到网站的标题
time.sleep(100)


2:class定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过id定位)
search_input=driver.find_element(By.CLASS_NAME,'s_int')
print(search_input.tag_name)#他的标签名
print(search_input.get_attribute("type"))#他的tab
print(search_input.parent)#他的内容
# 4:输入关键字
search_input.send_keys("江少")
# 5:点击搜索
driver.find_element(By.CLASS_NAME,"search_btn").click()
# 6:验证结果---assert断言
"""断言 判断一个表达式(True/False)
返回是False一触发异常
特点: 条件不满足直接返回错误, 不必在继续了"""
assert driver.title == '全部作品_读书屋', "断言地方有问题"  #若断言不成立,会打印逗号后面的内容
print(f'{driver.title}测试成功')  #driver.title拿到网站的标题
time.sleep(100)

3:name定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过NAME定位)
search_input=driver.find_element(By.NAME,'searchKey')
print(search_input.tag_name)#他的标签名
print(search_input.get_attribute("type"))#他的tab
print(search_input.parent)#他的内容
# 4:输入关键字
search_input.send_keys("江少")
# 5:点击搜索
driver.find_element(By.ID,"btnSearch").click()
# 6:验证结果---assert断言
"""断言 判断一个表达式(True/False)
返回是False一触发异常
特点: 条件不满足直接返回错误, 不必在继续了"""
assert driver.title == '全部作品_读书屋', "断言地方有问题"  #若断言不成立,会打印逗号后面的内容
print(f'{driver.title}测试成功')  #driver.title拿到网站的标题
time.sleep(100)

4:xpath定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过NAME定位)
search_input=driver.find_element(By.XPATH,'//*[@id="searchKey"]')
print(search_input.tag_name)#他的标签名
print(search_input.get_attribute("type"))#他的tab
print(search_input.parent)#他的内容
# 4:输入关键字
search_input.send_keys("江少")
# 5:点击搜索

driver.find_element(By.XPATH,"//label[@class='search_btn']").click()

5:link定位

#针对文本链接的。我们可以不用管标签,直接通过文本就能定位
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过id定位)
driver.find_element(By.LINK_TEXT,'登录').click()

6:模糊定位

有时候一个链接文本很长,如果全部输入,又麻烦,又显得代码不美观,只截取一部分.在他有相同几个是取第一个(当文本存在相同的文本时,尽量不要使用)
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1:打开浏览器
driver=webdriver.Chrome()
# 2:输入你的网站
driver.get('http://novel.hctestedu.com/')
# 3:找到元素(通过id定位)
search_input=driver.find_element(By.PARTIAL_LINK_TEXT,'你').click()

time.sleep(50)

7:tag定位

"""
from selenium import webdriver
from selenium.webdriver.common.by import By
search_input=driver.find_element(By.TAG_NAME,'searchKey')
<> tag html的每个元素都是tag
一个tag往往用来定义一类功能我们查看读书屋htm1-- div input a ,
统称为tag很难通过tag去区分元素基本上工作中用不到,
"""

8:css定位

一般不用

9:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值