本博文重点介绍python学习selenium2查找条件对象By部分,依据HTML的不同,查找条件也会不同,某些是依据ID,还有Name,下面具体介绍id,name,classname,linktext,partiallinktext,tagname,xpath,见如下:
ID
依据ID的属性来进行查找,已百度搜索输入框为例,百度搜索输入框的HTML的代码如下:
<
class="nodeTag ">inputid="kw"class="s_ipt"autocomplete="off"maxlength="100"value=""name="wd">
如果操作该文本框,就已id="kw"来操作,下面的代码是在搜索输入框中输入selenium2字符,见代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://www.baidu.com')
#百度搜索输入框输入selenium2
driver.find_element_by_id('kw').send_keys('selenium2')
#结束测试
driver.close()
name
依据name属性查找与ID是一样的,已V客网的用户名输入框为例说明,见HTML代码:
<
class="nodeTag ">inputid="user-account"class="login-input"type="text"fs="请输入邮箱/手机号"name="account"value=""datalimit="1-1050_50-0"datatype="UserAccountRule">\
如果操作该文本框,就已name="account",下面的代码是在用户名输入框中输入selenium2,见代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
#百度搜索输入框输入selenium2
driver.find_element_by_name('account').send_keys('selenium2')
#结束测试
driver.close()
classname
classname属性,也已V客网用户名输入框文本框为例,见HTML代码:
<
class="nodeTag ">inputid="user-account"class="login-input"type="text"fs="请输入邮箱/手机号"name="account"value=""datalimit="1-1050_50-0"datatype="UserAccountRule">\
操作该文本框,通过属性classanme='login-input',在用户名文本框那个输入selenium2,见如下的代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
#百度搜索输入框输入selenium2
driver.find_element_by_class_name('login-input').send_keys('selenium2')
#结束测试
driver.close()
linktext
linktext是通过超链接的形式实现的,已链接文本进行查找,如在V客网的登录页面,点击“立即注册”跳转到注册的页面,代码见如下:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
#百度搜索输入框输入selenium2
driver.find_element_by_link_text(u'立即注册').click()
#结束测试
driver.close()
partiallinktext
partiallinktext是按照链接文本进行模糊的查找,
本实例任然已V客网登录页面,已模糊字符“册”子,跳转到注册的页面,见如下的代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
#百度搜索输入框输入selenium2
driver.find_element_by_partial_link_text(u'册').click()
#结束测试
driver.close()
tagname
tagName是按标记名称进行查找,并返回第一个匹配项,如V客网登录页面的用户名输入框标记名称是“input”,如下代码就通过标记名称在用户名文本框中输入selenium2的字符,见代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
#百度搜索输入框输入selenium2
driver.find_element_by_tag_name('input').send_keys('selenium2')
#结束测试
driver.close()
xpath
如果以上方法都无法定位到一个指定对象,那么使用xpath,建议在Firefox浏览器安装FirePath插件,如V客网用户名输入框,已xpath定位,见截图:
定位到xpath是“.//*[@id='login-form']/div[1]/label[2]”,在用户名文本框中输入selenium2,见如下的代码:
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://my.weke.com/login.html')
driver.find_element_by_xpath(".//*[@id='login-form']/div[1]/label[2]").send_keys('selenium2')
#结束测试
driver.close()
在python操作seleniunm2,查找条件属相一般使用的是日上介绍的部分,但是python语言查找条件属性,分别是:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_tag_name()
find_element_by_css_selector()
find_element_by_xpath()