如何定位页面元素
视频课程:https://www.bilibili.com/video/BV185411A7YD?p=3
1 id定位︰
driver.find_element(By.ID ,"kw"').send_keys("新闻热点")
2 name定位∶
driver.find_element(By.NAME, "wd").send_keys("新闻热点")
3 link_text定位:
driver.find_element(By.LINK_TEXT,"新闻"").click()
4 partail_link_text定位:
driver.find_element(By.PARTIAL_LINK_ TEXT, "新").click()
5 xpath定位∶
绝对路径:/开头是绝对路径
/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
相对路径://开头是相对路径
//input
1.相对路径+索引定位︰
//form/span[1]/input
2.相对路径+属性定位∶
input标签存在多个,格式:
//标签名[@xxx] 呼叫具有唯一性的xxx
//input[@autocomplete='off]
3.相对路径+通配符定位*:
//[@autocomplete='off']
搜索任意标签,任意属性值为off的元素
//[@*='off]
复制xpath经常会出错,不是万能的
4.相对路径+部分属性值定位∶
以开头://*[starts-with(@autocomplete, 'of')]
以结尾://*[substring(@autocomplete,2)='ff]
包含://*[contains(@autocomplete, 'of')]
5.相对路径+文本定位
例如这种不是a标签的:<Span class="soutu-hover-tip" style="display: none;”按图片搜索</span == $0
//span[text()='按图片搜索']
(待补充)
6 css定位∶
1.绝对路径:不用
2.通过ID和Class定位
3.通过属性定位
4.通过部分属性定位
5.查询子元素定位
6.查询兄弟节点定位
(基本不用)
7 class定位
driver.find_element_by_class_name("s_ipt")
8 标签定位
使用较少基本不用同一个标签重复太多
driver.find_element_by_tag_name("input")
一些元素定位小技巧
如何查找元素是否唯一?
document.getElementsByClassName("form-control input-lg")
如何复制xpath?