Selenium----8大元素定位
一、常用的元素定位方式有哪些?
**本次内容以 https://www.baidu.com/ 为例,代码均已跑通
操作简单页面:1. id(推荐)
如果某个元素有id属性,如果id属性是唯一的,可以用这个属性的值进行定位,如果id属性的值是一串无序的字母或数字,则不能使用,有可能是动态id,代码如下:
driver.find_element(By.ID,"kw")
2. name(推荐)
根据那么属性的值来定位,但是如果name属性的值在当前页面不唯一,则是无法定位的,代码如下:
driver.find_element(by=By.NAME, value="kk")
3. class name
该属性的值,不唯一的可能性很大,代码如下:
driver = find_element(by=By.CLASS_NAME, value="jj")
4. tag name(通过标签名本身选择,一般无法使用,不推荐),如input标签,登录功能中,账号和密码都有,不唯一。其代码如下:
driver = find_element(by=By.TAG_NAME, value="ll")
5. link text(通过文本来定位,就是根据搜索关键词去定位,一般不要使用)
driver = find_element(by=By.LINK_TEXT, value="八字排盘")
6. partical link text(一般不要使用)
driver = find_element(by=By.PARTIAL_LINK_TEXT, value="搜索")
操作复杂页面:
7. xpath(和CSS类似,可以直接复制一个元素相关的信息,id,class,tag等)如:
/ : 代表的直接子节点
// : 后代节点
表达方式1:
/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input表达方式2:
//*[@id="kw"]
8. css selector
8.1 [tag标签+name值]:
driver.find_element(by=By.CSS_SELECTOR,value='input[name="wd"]').send_keys("兰花科创")8.2 [class唯一的话]:class属性前面要加点
driver.find_element(by=By.CSS_SELECTOR,value='.s_ipt').send_keys("兰花科创")