@52fhy
2016-02-20T16:56:43.000000Z
字数 1580
阅读 604
工具
本节内容:
· id
· name
· class name
· link text
· partial link text
· tag name
· xpath
· css selector
与js里的document.getElementById
类似,我们可以使用webdriver进行模拟操作,进行元素查找、操作。
下面的例子是对模拟用户访问百度首页,输入selenium
,并点击搜索的过程。提供了多种查找元素节点的方法:
百度输入框的属性信息,如下:
<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">
<input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
脚本:
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
time.sleep(2)
#########百度输入框的定位方式##########
#通过id方式定位
browser.find_element_by_id("kw").send_keys("selenium")
browser.get("http://www.baidu.com")
#通过name方式定位
browser.find_element_by_name("wd").send_keys("selenium")
browser.get("http://www.baidu.com")
#通过tag name方式定位,可能找到多个
#browser.find_element_by_tag_name("input").send_keys("selenium")
#browser.get("http://www.baidu.com")
#通过class name 方式定位
browser.find_element_by_class_name("s_ipt").send_keys("selenium")
browser.get("http://www.baidu.com")
#通过CSS方式定位
browser.find_element_by_css_selector("#kw").send_keys("selenium")
browser.get("http://www.baidu.com")
#通过xphan方式定位
browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
############################################
browser.find_element_by_id("su").click()
time.sleep(3)
browser.quit()
CSS方式定位与jQuery的选择器非常类似。
jQuery API 中文手册
http://hemin.cn/jq/id.html
XPath 教程
http://www.w3school.com.cn/xpath/
通过browser.find_element_by_name
或者find_element_by_tag_name
等方式获取的元素可能有多个,我们可以通过for循环遍历:
inputs = dr.find_elements_by_tag_name('input')
for input in inputs:
if input.get_attribute('type') == 'checkbox':
input.click()