python与selenium自动化基础-定位元素

一、使用selenium的webdirver模块对浏览器进行操作 

  注意:需要安装浏览器版本对应的driver驱动

from selenium import webdriver
b = webdriver.Firefox()
b.get('https://www.baidu.com')   #打开一个网页
print(b.title)  # 打印title
print(b.current_url)  # 打印 url

二、webdriver模块对浏览器进行操作:元素的定位 

python与selenium自动化基础-定位元素_第1张图片

 

# 根据id获取元素
ele = b.find_element_by_id("kw")
ele.clear()  # 清除元素内容
ele.send_keys("麦子学院")  # 模拟按键输入
b.back()  #返回
# 根据name获取元素
ele = b.find_element_by_name("wd")
ele.clear()
ele.send_keys("麦子学院")
ele = b.find_element_by_class_name("s_ipt")
ele = b.find_element_by_tag_name('input')   #页面中有多个input,这样查找有问题

python与selenium自动化基础-定位元素_第2张图片

from selenium import webdriver
b = webdriver.Firefox()
b.get('https://www.imooc.com/')
b.maximize_window()  #最大化窗口
ele = b.find_element_by_link_text("免费课程")
# ele = b.find_element_by_partial_link_text("免费")  #模糊查询
ele.click()   #点击

b.find_element_by_css_selector() #根据css路径获取元素

python与selenium自动化基础-定位元素_第3张图片

 

from selenium import webdriver
b = webdriver.Firefox()
b.get('https://www.imooc.com/')
ele_css = b.find_element_by_css_selector('input[type="text"]')
ele_css.clear()
ele_css.send_keys("python")

xpath定位元素

xpath:通过路径表达式从XML文档中选取节点或者节点位置
/xxx                 选取根节点xxx
/xxx/yyy           根据绝对路径选择元素
//xxx                整个文档扫描,找到所有xxx元素
.                      选取当前节点的父元素节点
..                     选取父元素地址
//xxx[@id]        选取所有xxx元素中有id属性的元素
//xxx[@id=yyy] 选取所有xxx元素id属性为yyy的元素

b.find_element_by_xpath('/html/body/form/input') #form元素下的所有inpu
b.find_element_by_xpath('/html/body/form/input[1]') #根据下标定位某一个input
b.find_element_by_xpath('//*[count(input=2)]')   #遍历找input标签值有2个的元素

//*[count(x)=2]                 统计x元素个数=2的节点
//*[local-name()='x']         找到tag为x的元素
//*[starts-with(local-name(),'x')]     找到所有tag以x开头的元素
//*[contains(local-name(),'x')]        找到所有tag包含x的元素
//*[string-length(local-name())=3] 找到所有tag长度为3的元素
//x|//y 多个路径查找

b.find_element_by_xpath('//*[count(input=2)]/..')   #遍历找input标签值有2个的元素的父节点
b.find_element_by_xpath('//form//*[contains(local-name(),"i")][last()]')   #form下包含i的节点的最后一个
b.find_element_by_xpath('//form//*[contains(local-name(),"i")][last()-1]')

你可能感兴趣的:(python与selenium自动化基础-定位元素)