总结-webdriver元素定位

1.元素定位

 

from selenium import webdriver
b=webdriver.Firefox()
b.get('http://www.baidu.com')
b.maximize_window()   #窗口最大化
b.title    #获取当前网页标题
b.current_url   #获取当前网页URL
ele=b.find_element_by_id('kw')   #通过id查找元素
ele=b.find_element_by_name('wd')   #通过name查找元素
ele=b.find_element_by_class_name('s_ipt')   #通过class_name查找元素

 

 

 

#<li>
#  <a href="/land/pm/" alt="产品经理">产品经理</a>
#<li>

ele=b.find_element_by_link_text('产品经理')  #通过文本查找相关元素
ele.click()    #点击
ele1=b.find_element_by_partial_link_text('品经理')  #通过文本模糊查找相关元素
ele1.click()    #点击

ele.id   #-->'881b1f2d-9e83-493c-8792-bb4fae7c7517'
ele1.id  #-->'881b1f2d-9e83-493c-8792-bb4fae7c7517'

 

#百度输入框 :<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
ele=b.find_element_by_css_selector('input[id="kw"]')  #属性id='kw'的元素input 区分大小写  []里的语法为python中的re
ele.clear()    #清空元素内容
ele.send_keys('水果')   #模拟按键输入

 

2.xpath元素定位

 

 

 

 

 

#文件:file:///D:/seleniumtest/test.html
<html>
    <head>
    it's head
        <title>selenium</title>
    </head>

    <p>
    age
        <input type="text" name="age">
    </p>
    <body>
        <form>
        firstname
            <input type="text" name="firstname" id='test'>
            <br />
        lastname
            <input type="text" name="lastname">
        </form>

    </body>
</html>

 

from selenium import webdriver
b=webdriver.Firefox()
b.get(r'file:///D:/seleniumtest/test.html')

#/xxx  选取根节点
ele=b.find_element_by_xpath('/html')                     

#/xxx/yyy  根据绝对路径选择元素  ,如果有多个,默认取第一个
ele=b.find_element_by_xpath('/html/body/form/input')     
ele=b.find_element_by_xpath('/html/body/form/input[2]')  
ele.get_attribute('name')

# //xxx  整个文档扫描,找到所有的xxx元素
ele=b.find_element_by_xpath('//input')                 
ele=b.find_element_by_xpath('//input[2]')
#最多找2个元素,继续查找第三个报错
ele=b.find_element_by_xpath('//input[3]')               

#//xxx/yyy 查找所有父元素为xxx的yyy元素
ele=b.find_element_by_xpath('//form/input')      
#选择input父元素的地址
ele=b.find_element_by_xpath('//form/input/..')   
ele.tag_name                         

#///xxx[@id]选取所有xxx元素中有id属性的元素
ele=b.find_element_by_xpath('//input[@id]')        
#///xxx[@id=yyy]选取所有xxx元素id属性为yyy的元素
ele=b.find_element_by_xpath('//input[@name="firstname"]')  

#//*[count(xxx)=2]   统计xxx元素个数=2的节点
ele=b.find_element_by_xpath('//*[count(input)=2]')  
ele.tag_name         #-->'form'
ele=b.find_element_by_xpath('//*[count(input)=2]/..')
ele.tag_name         #-->'body'

# //*[local-name()='xxx'  找到tag为xxx的元素
ele = b.find_element_by_xpath('//*[local-name()="input"]')                   
ele.get_attribute('name')    #-->'age'

# //*[starts-with(local-name(),'x')]  找到所有tag以x开头的元素
ele =  b.find_element_by_xpath('//*[starts-with(local-name(),"inp")]')       
ele.get_attribute('name')    #-->'age'

#//*[contains(local-name(),'x')]  找到所有tag包含x的元素
ele = b.find_element_by_xpath('//*[contains(local-name(),"npu")]')            
ele.get_attribute('name')    #-->'age'
#last()查找最后一个  last()-1 倒数第二个
ele = b.find_element_by_xpath('//form//*[contains(local-name(),"i")][last()]')   
ele.get_attribute('name')    #-->'lastname

#//*[string-length(local-name()) = 5]  找到所有tag长度为5的元素
ele=b.find_element_by_xpath('//*[string-length(local-name())=5]')             
ele.tag_name                 #-->'title'
ele=b.find_element_by_xpath('//form/*[string-length(local-name())=5]')
ele.get_attribute('name')    #-->'firstname'

#//xxx | //yyy    多个路径查找,按顺序查找,找到返回,找不到继续下一个路径查找
ele=b.find_element_by_xpath('//title|//input[last()]')                         
ele.tag_name                 #-->'title'
ele=b.find_element_by_xpath('//title2222|//input')
ele.tag_name                 #-->'input'

 

转载于:https://www.cnblogs.com/lijinping716/p/11532916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值