首页 > 技术文章 > python+selenium测试----3

jianjian12138 2018-10-11 10:44 原文

1,Firefox安装插件:Firebug和FirePath

2.chrome fn+f12

八种元素定位方法

from selenium import webdriver
import time
driver = webdriver.Firefox()
url = "http://ps.gongfudou.com/admin/dashboard"
driver.get(url)
time.sleep(3)
#通过id定位
#driver.find_element_by_id("admin_name").send_keys("admin")
#driver.find_element_by_id("password").send_keys("gfd")
#driver.find_element_by_id("login_btn").click()

#通过name定位
#driver.find_element_by_name("admin[name]").send_keys("admin")
#driver.find_element_by_name("admin[password]").send_keys("gfd")
#driver.find_element_by_id("login_btn").click()

#通过class_name定位
#driver.find_element_by_class_name("form-control").send_keys("admin")

#通过tag_name定位
#driver.find_element_by_tag_name("input").send_keys("admin")

#通过xpath定位
#driver.find_element_by_xpath(".//*[@id='admin_name']").send_keys("admin")
#driver.find_element_by_xpath(".//*[@id='password']").send_keys("gfd")
#driver.find_element_by_xpath(".//*[@id='login_btn']").click()

#通过cssh定位
driver.find_element_by_css_selector("#admin_name").send_keys("admin")
driver.find_element_by_css_selector("#password]").send_keys("gfd")
driver.find_element_by_css_selector("#login_btn").click()
time.sleep(3)
driver.quit()

xpath定位方法
from selenium import webdriver
import time
driver = webdriver.Firefox()
url = "http://www.baidu.com"
driver.get(url)
time.sleep(3)
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("id")
driver.find_element_by_xpath(".//*[@name='wd']").send_keys("name")
driver.find_element_by_xpath(".//*[@class='s_ipt']").send_keys("class")
driver.find_element_by_xpath(".//*[@autocomplete='off']").send_keys("其他")
driver.find_element_by_xpath("//input[@autocomplete='off']").send_keys("带标签的其他")
driver.find_element_by_xpath("//form[@id='form']/span/input").send_keys("层级定位")
driver.find_element_by_xpath("//select[@id='nr]/option[2]").click()
#索引。如果一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟
driver.find_element_by_xpath("//*[@id='kw' and @autocomplete='off']").send_keys("逻辑运算")
driver.find_element_by_xpath("//*[contains(text(),'hao123)]").click()#模糊匹配
driver.find_element_by_xpath("//*[contains(@id,'kw')]").click() #匹配某个属性
driver.find_element_by_xpath("//*[starts-with(@id,'s_kw')]").click() #匹配以什么开头
driver.find_element_by_xpath("//*[end-with(@id,'kw_wrap')]").click() #匹配以什么结尾
driver.find_element_by_xpath("//*[matchs(text(),'hao13')]").click() #正则表达式

css元素定位
t time
driver = webdriver.Firefox()
url = "http://www.baidu.com"
driver.get(url)
time.sleep(3)
driver.find_element_by_css_selector("#kw").send_keys("id")
driver.find_element_by_css_selector("#input").send_keys("标签")
driver.find_element_by_css_selector("#s_ipt").send_keys("class")#标签、class、id这三个常规属性
driver.find_element_by_css_selector("#[name='wd']").send_keys("name")
driver.find_element_by_css_selector("#[type='text']").send_keys("type")
driver.find_element_by_css_selector("[autocomplete='off']").send_keys("其他")
driver.find_element_by_css_selector("input.s_ipt").send_keys("标签和其他属性组合")
driver.find_element_by_css_selector("form.fm>span>input").send_keys("层级定位")
driver.find_element_by_css_selector("select#nr>option:nth-child(2)").click()
#索引。如果一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟
driver.find_element_by_css_selector("input[id='kw'][autocomplete='off']").send_keys("逻辑运算")
driver.find_element_by_css_selector("a[href^='http://map.baidu']").click()#前端匹配
driver.find_element_by_css_selector("a[href$='//map.baidu.com']").click()#后端匹配
driver.find_element_by_css_selector("a[href*='//map.baidu.']").click()#中间匹配

推荐阅读