(一) 查找元素
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”]”