web自动化之元素定位

(一) 查找元素
DOM对象
1、元素的id 属性 id 是唯一的 document.getElementById()
2、使用class 属性 document.getElementByClassName()
3、元素的 name 属性 document.getElementByName()
4、使用 标签名 document.getElementByTagName()
5、使用 CSS 选择器 document.querySelector(css)
6、使用xpath

(二)selenium 做web自动化元素定位
from selenium import webdriver
1/启动浏览器 创建一个浏览器会话,并保存服务器log日志
driver = weddriver.Chome(service_log_path=r"F:\pythonStudy\webtest\test.log")
2、访问浏览其中的一个网页 如百度
driver.get(“http://www.baidu.com”)
3、查找网页中的元素
ele = driver.find_elemnet_by_id(“kw”)
ele.get_attribute(“class”)
ele.setattr(“class”,“non”)
#方式二 class 有的连着有几个classname,但只能写一个用于查找,都写上会报错
ele1 = driver.find_element_by_class_name(“s_ipt”)
driver.find_elements_by_class_name(“s_ipt”)

#方式三 tagname
ele3 = driver.find_element_by_tag_name(“input”)
driver.find_elements_by_tag_name(“input”)
#方式四name
ele4 = driver.find_elemnet_by_name(“wd”)
driver.find_elemnets_by_name(“wd”)
#方式五六 针对连接 模糊查询和精确查询
driver.find_element_by_link_text(“更多产品”)
driver.find_element_by_partial_link_text(“产品”)

#xpath 绝对定位 /html/非常依赖页面位置和顺序 右键copy xpath,绝对路径一改就容易出错,
#相对定位 以//开头 不依赖页面的顺序和位置
#只看页面中有没有符合条件 f12 element页 ctrl+f
#//input[@name=""] // 元素名称[@识别元素属性名=值,一般id,name属性取唯一变化不大的,不要取value]
#逻辑运算符中and or //div[@id=“u1”]//a[@name=“tj_login” and @class=“lb”] 找到父类,在找子类里面的东西

text() 函数 //*[@id=“third-nav”]//a[text()=“资料”] //a[text()=“资料”] 推荐使用找id的方法,定位更快, 此处父类用了正则匹配
#contains(@属性/text(),value)
//div[@class=“VV” and contains(@style,“display”)] 随机+固定 class style
driver.find_element_by_xpath("//input[@id=“su”]")

轴定位 /轴名称::标签名[@属性名=值] ancestor following-sibling
#//span[text()=“python11”]/ancestor::a/following-sibling::div//a (表格定位中,根据列明 定位到某一行中的值)
#path = “//p[text()=“2018.12.6”]/parent::div/following-sibling::div//a[@class=“btn-changeattendstate”]”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值