html id name xpath,Selenium定位方法——ID定位、名称定位、类定位、链接文本定位、部分链接文本定位、标记定位、XPath定位和CSS定位,方式,id,name,class,l...

1、通过id定位控件

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(2)#等待两秒

driver.find_element_by_id('kw')#定位控件

2、通过name定位控件

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#最大化浏览器

time.sleep(2)#等待2s

driver.find_element_by_name('wd').send_keys('Python')#定位控件

3、通过class_name定位控件

对于class的值中间有空格的,叫复合类,不适合用class_name定位控件。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(2)#等待两秒

driver.find_element_by_class_name('s_ipt').send_keys('Python')#定位控件

4、通过link_text定位控件

适用于控件代码是a标签,有href的属性,且有可跳转的地址。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(2)#等待两秒

driver.find_element_by_link_text('贴吧').click()#定位控件

5、通过partial_link_text定位控件

和link_text的区别,只需输入连续的部分文字即可,但值必须是页面唯一。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(2)#等待两秒

driver.find_element_by_partial_link_text('hao').click()#定位控件

6、通过tag标签名定位

页面同类型标签太多,不建议使用。

7、 通过xpath定位

万能的定位方式。

(1)绝对路径

绝对路径定位策略:

①从html开始向下查找,或者从控件开始向上查找;

②ctrl+f,输入绝对路径查找;

xpath的索引是从1开始,回车之后,黄色高亮行唯一。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_xpath("/html/body/div/div[2]/div[5]/div[1]/div/form/span[1]/input[1]").send_keys('Python')#定位控件

(2)相对路径

通过//开始引用控件,中括号里面加@属性,然后加后面路径。

1)定位父级控件

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_xpath("//form[@id='form']/span[1]/input").send_keys('Python')#定位控件

2)直接定位控件属性

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_xpath("//input[@class='s_ipt']").send_keys('Python')#定位控件

3)若属性不唯一,用and并列条件来定位

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_xpath("//input[@class='s_ipt' and @type='text']").send_keys('Python')#定位控件

4)通过contains关键字定位

通过contains(@属性,‘关键字’),查找该属性包含的关键字,关键字必须是连续的。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_xpath("//input[contains(@value='度一')]").click()#定位控件

8、通过CSS定位

(1)绝对路径

和xpath类似。

①用空格

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('html body div div:nth-child(2) div div div form span(1) input:nth-child(1)').click()#定位控件

②用大于号

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('html>body>div>div:nth-child(2)>div>div>div>form>span(1)>input:nth-child(1)').click()#定位控件

(2)相对路径

1)id属性

通过#id的属性值定位。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('#kw').send_keys('Python')#定位控件

2)class属性

通过点号.加class属性值定位。

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('.s_ipt').send_keys('Python')#定位控件

3)标签名[属性=‘属性值’]定位

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('input[name="wd"]').send_keys('Python')#定位控件

4)多条件并列定位

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('input[name="wd"][class="s_ipt"]').send_keys('Python')#定位控件

5)先定位父级

from selenium import webdriver

import time

driver=webdriver.Chrome()#初始化对象

driver.get('http://www.baidu.com')#打开浏览器

driver.maximize_window()#浏览器最大化

time.sleep(3)#等待两秒

driver.find_element_by_css_selector('div#s_form_wrapper>form>span>input:nth-child(1)).click()#定位控件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值