我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

selenium_武浩杰_2021/2/24

[复制链接]
海底月是天上月学员认证 发表于 2021-2-24 19:53:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
元素定位的方式id定位 根据的id属性定位
name定位 根据那name 的属性定位
class定位 根据class的属性定位  -- 一般用于定位多个元素
tag_name定位 元素名定位(标签位一般不用)
link_text定位 根据超链接的文本进行定位, 必须完全匹配
partial_link_text定位 根据超链接元素的文本进行匹配,模糊匹配
xpath定位 根据元素路径定位
css定位 根据元素的样式精确进行定位

from selenium import webdriver
from time import sleep
driver = webdiver.Chrome()
driver.get("https://www.baidu.com/")
根据id定位元素
input = driver.find_element_by_id('kw')
根据name定位元素
input = driver.find_element_by_name('kw')
根据class定位元素
input = driver.find_element_by_class_name('s_ipt')

写入文本
input.send_keys('货拉拉')
根据class定位“百度一下”
btn = driver.find_element_by_class_name('s_btn')
btn.click()

定位“新闻”-- 精确
driver.find_element_by_link_text('新闻').click()
定位“直播”-- 模糊匹配
driver.find_element_by_partial_link_text('直').click()
find_element_by_xxx返回的是一个列表,如果没有合适的元素,则返回的是一个空列表
元素的点定位方式xpath
from selenium import webdriver
from time import sleep
try:
    driver = webdiver.Chrome()
    driver.get("https://www.baidu.com/")

①绝对路径  以/开始
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div[1]/div/form/span[1]/input').send_keys('货拉拉')
②相对路径 以//开始 @表示属性  *通配符,表示任意元素
从当前开始的 driver.find_element_by_xpath('//input[@id="kw"]').send_keys('货拉拉')
从中间开始的 driver.find_element_by_xpath('//form[@id="form"]/span[2]/input').send_keys('货拉拉')
也可使用多个属性定位
driver.find_element_by_xpath('input[@class="s_ipt" and @qutocomplete="off"]').send_keys('货拉拉')
定位”百度一下“
从当前开始的 driver.find_element_by_xpath('//input[@value="百度一下"]').click()
从中间开始的 driver.find_element_by_xpath('//form[@id="form"]/span[2]/input').click()
except Exception as e:
    print(e)
finally:
    sleep(2)
    driver.close()

文本定位方式xpath
from selenium import webdriver
from time import sleep
try:
    driver = webdiver.Chrome()
    driver.get("https://www.baidu.com/")

文本定位 -- 精确匹配  text()获取元素的文本
定位贴吧
driver.find_element_by_xpath('//span[text()="贴吧"]').click()
定位设置
driver.find_element_by_xpath('//span[text()="设置"]').click()
文本定位 --模糊匹配 contains()包含的意思 所有的都可以用
定位“百度热榜”
driver.find_element_by_xpath('//*[contains(text(),"度热榜")]').click()
从定位到输入再到打开
driver.find_element_by_id('kw').send_keys('货拉拉')
driver.find_eement_by_xpath('//input[contains(@value,"一下")]').click()
except Exception as e:
    print(e)
finally:
    sleep(2)
    driver.close()


css定位 层叠样式表
from selenium import webdriver
from time import sleep
try:
    driver = webdiver.Chrome()
    driver.get("https://www.baidu.com/")

driver.find_element_by_css_selector('#kw').sent_keys('货拉拉')
except Exception as e:
    print(e)
finally:
    sleep(2)
    driver.quit()





回复

使用道具 举报

关注0

粉丝0

帖子30

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备20001493号-1 )

版权所有 © 西安菁英教育科技有限公司 2023-2026