【基于Python的Selenium2自动化测试】02 -Webdriver之元素定位


说明:

WebDriver属于Selenium体系中用来操作浏览器的一套API,同时,WebDriver也是Python的一个用于实现Web自动化的第三方库。

首先来看一下百度首页的Web页面,如下:
在这里插入图片描述

在这张web页面上,我们看到有 输入框、按钮和文字链接,还有图片、页面底部的文字等。自动化要做的就是模拟鼠标和键盘来操作这些元素,或单击,或输入,或鼠标悬停等操作。

操作这些页面元素的前提就是要找到它们,自动化工具不可能像人一样可以通过肉眼就可以分辨这些元素,并且知道它们是干什么用的,那么自动化工具如何找到它们呢?

接下来我们通过前端工具来看一下这些元素的真实面目。

对于谷歌浏览器,我们只需要按 F12 就可以启用开发者工具查看页面元素,如下:
在这里插入图片描述
我们可以看到页面上的元素都是由一行行的代码组成的,它们之间是层级关系组织起来的,每个元素有不同的标签名和属性值。WebDriver就是通过这些信息来找到不同的元素的。

WebDriver提供了8种元素定位方法,在Python中,其对应的方法如下:

元素 方法
id name
class name tag name
link text partial link text
xpath css selector
find_element_by_id() find_element_by_name()
find_element_by_class_name() find_element_by_tag_name()
find_element_by_link_text() find_element_by_partial_tag_name()
find_element_by_xpath() find_element_by_css_selector()

下面是百度首页的前端代码(Chrome开发者工具查看所得)

<!--STATUS OK-->
<html>
   <head></head>
   <body link=”#0000cc”>
		<div data-for="result" id="swfEveryCookieWrap" style="width: 0px; height: 0px; overflow: hidden;">...</div>
		<script></script>
<div id="wrapper" style="display: block;">
			<script>
if(window.bds&&bds.util&&bds.util.setContainerWidth){
    bds.util.setContainerWidth();}
</script>
<div id=”head”>
	<div class=”head_wrapper”>
		<div class=”s_form”>
			<div class="s_form_wrapper soutu-env-nomac soutu-env-index">
				<div id="lg">
					<img hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" width="270" height="129">
							</div>
							<a href="/" id="result_logo" onmousedown="return c({
    'fm':'tab','tab':'logo'})">
								<img src="//www.baidu.com/img/baidu_jgylogo3.gif" alt="到百度首页" title="到百度首页">
							</a>
							<form id="form" name="f" action="/s" class="fm">
								<input type="hidden" name="ie" value="utf-8">
								<input type="hidden" name="f" value="8">
								
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值