Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。
定位节点
Selenium 提供了 8 种定位单个节点的方法,如下所示:
方法 | 说明 |
---|---|
find_element_by_id() | 通过 id 属性值定位 |
find_element_by_name() | 通过 name 属性值定位 |
find_element_by_class_name() | 通过 class 属性值定位 |
find_element_by_tag_name() | 通过 tag 标签名定位 |
find_element_by_link_text() | 通过标签内文本定位,即精准定位。 |
find_element_by_partial_link_text() | 通过标签内部分文本定位,即模糊定位。 |
find_element_by_xpath() | 通过 xpath 表达式定位 |
find_element_by_css_selector() | 通过 css 选择器定位 |
假设下面代码某个页面的代码片段,如下所示:
<html>
<head>
<body link="#cc0916">
<a id="logo" href="http://c.cainiao.net" onclick="">
<form id="form" class="fm" name="f" action="c.cainiao.net">
<span class="btn"></span>
<input id="kw" class="s_ipt_wr" name="wd" value="" maxlength="255" autocomplete="off">
</body>
</head>
</html>
下面使用表格中提供的方法定位 input 输出框。如下所示:
#创建browser是浏览器对象
browser = webdriver.Chrome()
#访问某个url得到上述代码片段
browser.get('url')
#通过id定义输入框
browser.dr.find_element_by_id("kw")
#通过class定义
browser.find_element_by_class_name("s_ipt_wr")
#通过name定位
browser.find_element_by_name("wd")
#通过tag name定位:
browser.find_element_by_tag_name("input")
#通过xpath定位
browser.find_element_by_xpath("//*[@id='kw']")
#通过css选择器定位
browser.find_element_by_css_selector("#kw")
通过 a 标签内的文本内容定位节点,如下所示:
<a class="vip" href="http://c.baincheng.net">百度中文网</a>
<a class="search" href="http://www.baidu.com">hao123</a>
示例如下:
#使用全部文本内容定位链接
browser.find_element_by_link_text("百度中文网")
#使用部分文本内容定位链接
browser.find_element_by_par