在这里我们使用的是谷歌浏览器,需要下载驱动:(百度)
八大元素定位,大同小异
导包
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: