:nth-of-type(n)
p:nth-of-type(2)
选择父元素的第二个p子元素的集合,和:nth-child(n) 区别是前后可以有非p元素,不一定是父元素的第二个子元素
:nth-last-of-type(n)
p:nth-last-of-type(2)
同上,从最后一个元素来计数
:root
:root
选择文档的根元素
:empty
p:empty
选择没有子节点的p元素包含文本节点
:enabled
input:enabled
选择每个启用的input元素
:disabled
input:disabled
选择每个禁用的input元素
:checked
input:checked
选择每个被选中的input元素
:not(selector)
:not(p)
选择所有非p元素
Selenium 中则是采用
了来自Sizzle 的css3
定位扩展,它的语法更加灵活易懂。
:nth(n):eq(n)
li:nth(2)li:eq(2)
同:nth-child(n),但是从0开始
:first
li:first
同:first-child
:last
li:last
同:last-child
:even
li:even
在其父元素中的li 子元素集合中排在偶数位的集合
li:odd
在其父元素中的li 子元素集合中排在奇数位的集合
:lt(n)
li:lt(2)
在其父元素中的li 子元素集合中排在第n位之前的所有元素集合(不包含n),n从0开始
:gt(n)
lg:lt(2)
在其父元素中的li 子元素集合中排在第n位之后的所有元素集合(不包含n),n从0开始
:only-child
div:only-child
同:only-of-type
:empty
p:empty
同CSS原生选择器:empty
:input
:input
获取所有input类型的元素(包含input、select、textarea)
:text, :checkbox, :file, :password, :submit, :image, :reset, :button
获取指定类型的元素
二、selenium xpath 选择器 用法
示 例
说明:XPATH如何选择不包含某一个属性的节点
我们知道选择包含某一特定属性的节点,可以使用例如//tbody/tr[@class]来选择。那么不含某属性的节点如何用xpath取得呢?
这里可以用到not,例如排除一个属性的节点可以使用//tbody/tr[not(@class)]来写,排除一个或者两个属性可以使用//tbody/tr[not(@class or @id)]来选择。
三、常用元素方法
新建实例driver = webdriver.Firefox()
此处定位均使用的百度首页输入框
功 能 说 明
3.通过标签Xpath路径查找元素
find_element_by_xpath(xpath)
driver.find_element_by_xpath("//
[[
@*id](
https://testerhome.com/id
"@id")="kw"]")
4.通过标签名tagname查找元素
find_element_by_tag_name(tag_name)
driver.find_element_by_tag_name("input")
5.通过标签中的元素文本链接查找元素
find_element_by_link_text(link_text)
driver.find_element_by_link_text('百度一下')
6.通过标签的class属性查找元素
find_elements_by_class_name(class_name)
driver.find_elements_by_class_name("s_ipt")
7.通过css样式查找元素
find_element_by_css_selector()
driver.find_element_by_css_selector("#kw")
8.浏览器中加载url
get(url)
driver.get("
http://www.baidu.com
")
forward()
driver.forward()
10.返回当前会话中的cookies
get_cookies()
driver.get_cookies()
11.根据cookie name 查找
driver.get_cookie(cookie_name)
driver.get_cookie("NET_SessionId")
12.截取当前页面
get_screenshot_as_file(filename)
driver.get_screenshot_as_file(r"C:\Users\Eric\Desktop\test.png")
13.获取当前窗口的坐标
get_window_position()
driver.get_window_position()
14.获取当前窗口的长和宽
get_window_size()
driver.get_window_size()
15.获取当前页面的Url函数
current_url
driver.current_url
16.获取元素坐标(首先查找到你要获取元素的,然后调用location方法)
location
driver.find_element_by_id("kw").location
17.表单的提交(查找到表单(from)直接调用submit即可)
submit
driver.find_element_by_id("su").submit()
18.获取CSS的属性值
value_of_css_property(css_name)
driver.find_element_by_id("su").value_of_css_property("color")
19.获取元素的属性值
get_attribute(element_name)
driver.find_element_by_id("kw").get_attribute("type")
20.判断元素是否被选中
is_selected()
driver.find_element_by_id("form1").is_selected()
21.返回元素的大小(返回值:{'width': 102, 'height': 38})
driver.find_element_by_id("kw").size
22.判断元素是否显示
is_displayed()
driver.find_element_by_id("kw").is_displayed()
23.判断元素是否被使用
is_enabled()
driver.find_element_by_id("kw").is_enabled()
24.获取元素的文本值
driver.find_element_by_class_name("mnav").text
25.输入值
send_keys(*values)
driver.find_element_by_id("kw").send_keys('admin')
26.返回元素的tagName
tag_name
driver.find_element_by_id("kw").tag_name
27.删除浏览器所以的cookies
delete_all_cookies()
driver.delete_all_cookies()
28.删除指定的cookie
delete_cookie(name)
deriver.delete_cookie("my_cookie_name")
29.关闭浏览器
close()
driver.close()
30.关闭浏览器并且推出驱动程序
quit()
driver.quit()
31.返回上一页
back()
driver.back()
32.设置等待超时
implicitly_wait(wait_time)
driver.implicitly_wait(30)
33.浏览器窗口最大化
maximize_window()
driver.maximize_window()
34.查看浏览器的名字
drvier.name
35.刷新当前浏览器