轻松自动化---selenium-webdriver(python) (三)

发表于:2013-8-09 11:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:虫师    来源:51Testing软件测试网采编

  id 和 name

  --------------------------------------------------------------------------------

  id 和 name 是我们最最常用的定位方式,因为大多数控件都有这两个属性,而且在对控件的id 和name命名时一般使其有意义也会取不同的名字。通过这两个属性使我们找一个页面上的属性变得相当容易

  我们通过前端工具,找到了百度输入框的属性信息,如下:

  <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">

  id=”kw”

  通过find_element_by_id("kw") 函数就是捕获到百度输入框

  name=”wd”

  通过find_element_by_name("wd")函数同样也可以捕获百度输入框

  tag name 和class name

  --------------------------------------------------------------------------------

  从上面的百度输入框的属性信息中,我们看到,不单单只有id 和 name两个属性,比如class 和 tag name(标签名)

  <input>

  input 就是一个标签的名字,可以通过find_element_by_tag_name("input") 函数来定位。

  class="s_ipt"

  通过find_element_by_class_name("s_ipt")函数捕获百度输入框。

  但是,碰下面的一组控件属性,我们就哭了。

<th width="95"></th>
<th width="">文件名</th>
<th class="c1">创建时间</th>
<th class="c1">状态</th>
<th class="c1">文件大小</th>
<th class="c1">时长</th>

  下面的css 和 XPath就没有上面的那么直观,如果不懂前端的话可能不太好理解

  CSS定位

  --------------------------------------------------------------------------------

  CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。

  CSS的比较灵活可以选择控件的任意属性,上面的例子中:

  find_element_by_css_selector("#kw")

  通过find_element_by_css_selector( )函数,选择取百度输入框的id属性来定义

  也可以取name属性

<a href=http://news.baidu.com name="tj_news">新 闻</a>
driver.find_element_by_css_selector("a[name=\"tj_news\"]").click()

  可以取title属性

<a onclick="queryTab(this);" mon="col=502&pn=0" title="web" href=http://www.baidu.com/>网页</a>driver.find_element_by_css_selector("a[title=\"web\"]").click()

  也可以是取..:

<a class="RecycleBin xz" href="javascript:void(0);">
driver.find_element_by_css_selector("a.RecycleBin").click()

  虽然我也没全部理解CSS的定位,但是看上去应该是一种非常灵活和牛X 的定位方式

  扩展阅读:

  http://www.w3.org/TR/css3-selectors/

  http://www.w3school.com.cn/css/css_positioning.asp

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号