python实时定位_python+selenium二:定位方式

# 八种单数定位方式:element

from selenium import webdriver

import time

driver = webdriver.Firefox()

time.sleep(2) # 等待2秒

driver.get('https://www.baidu.com')

1、id定位:find_element_by_id()

# 定位到输入框,输入“中文”

1406024-20180610164145797-1514098439.png

time.sleep(2)

driver.find_element_by_id('kw').send_keys('中文')

1406024-20190402211721964-1492668759.png

2、name定位:find_element_by_name()

# 根据name定位到百度贴吧的输入框,输入“你好”

1406024-20180610164246197-211878259.png

driver.find_element_by_name('kw1').send_keys('你好')

1406024-20190402211914168-2028583467.png

3、class定位:find_element_by_class_name()

# 当class唯一时,才能使用此方法

# 根据class属性找到输入框,输入“你好”

1406024-20180610164628265-1817297103.png

driver.find_element_by_class_name('s_ipt').send_keys('你好')

1406024-20190402212029351-2038385326.png

4、根据标签名定位:find_element_by_tag_name() (由于标签名不唯一,不建议用此方法)

1406024-20180610164729638-1353400855.png

driver.find_element_by_tag_name('body')

# 获取定位元素下的文本信息

t = driver.find_element_by_tag_name('body').text

print(t)

1406024-20190402212203634-666285026.png

5、link定位(链接):find_element_by_link_text()

# 新闻

# href="http://news.baidu.com": 一般为link属性

# 根据link的文字内容“新闻”定位到link链接

driver.find_element_by_link_text('新闻').click()

6、partial_link定位

# 当代表link链接的文字内容过长时,可使用此方式截取部分文字定位

1406024-20180610165126973-1546658282.png

driver.find_element_by_partial_link_text('hao').click()

1406024-20190402212353743-504823529.png

7、Xpath定位:find_element_by_xpath()

1406024-20180610165242113-1798711695.png

xpath定位:.//*[@class="XXX"]、.//*[@id="XXX"]、.//*[@name="XXX"]、.//input(匹配input标签)、.//*[text()="文字内容"]、.//*[contains(text(),"文字内容")](匹配text属性里面有”文字内容”的所有内容)、

driver.find_element_by_xpath(".//*[@id='u1']/a[3]").click()

1406024-20190402212510938-864125024.png

8、CSS定位:find_element_by_css_selector()(不唯一)

1406024-20180610165358190-1629042602.png

driver.find_element_by_css_selector("#kw").send_keys("你好")

1406024-20190402212628454-2072017670.png

复数定位方式:elements (对元素不唯一),以id为例:

# 单数定位:

driver.find_element_by_id('kw').send_keys('中文')

1406024-20190402215429055-1922493720.png

# 复数定位:根据找出的元素的下标定位

elements = driver.find_elements_by_id('kw')

print(len(elements)) # 当不清楚定位到几个元素的时候,可以用此方法打印出来筛选

elements[0].send_keys('中文')

1406024-20190402215605293-990521102.png

# 当class属性有多个的时候,带空格

# 当有多个class属性的时候,此空格并不是空的字符串,而是此class具有多重属性

# class="search_ipt search_inp_border j_search_input tb_header_search_input"

# 贴吧输入框

# 确定其中某一个属性是唯一以后,取此属性即可

driver.find_element_by_class_name("search_ipt").send_keys("你好")

1406024-20190402215702755-739659065.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值