selenium 自动化测试工具(二)常用定位方式

注册A的页面 

<!DOCTYPE html>
<html lang="zh-cn">
<head>
	<meta charset="UTF-8">
	<title>注册A</title>
	<style type="text/css">
		body{background: #F0F0F0}
		form{width: 500px;background: #C7C7E2;padding: 10px;margin-top: 10%;margin-left: 30%}
		input{padding: 5px;background: #f8f8f8}
		button{padding: 8px; background: #f8f8f8;border-radius: 5px}
		button:hover{padding: 10px; background: #2F4F4F}
		input:focus{background: #FFC0CB}
		/*span{display: none}*/
	</style>
	<script type="text/javascript">
	</script>
</head>
<body>
<form action="">
	<div id="zc">
		<fieldset>
		<legend>注册用户A</legend>
			<p id="p1">
				<label for="userA">账号A</label>
		 		<input type="text" name="userA" id="userA" placeholder="账号A" required="" value="">			
			</p>
	 		<p>
				<label for="password">密码A</label>		
				<input type="password" name="passwordA" id="passwordA" placeholder="密码A" value="">
	 		</p>
			<p>
				<label for="telA">电话号码A</label>
				<input type="text" name="telA" id="telA" placeholder="电话A" class="telA" value="">				
			</p>
			<p>
				<label for="emailA">电子邮件A</label>
				<input type="text" name="emailA" id="emailA" placeholder="电子邮箱A" value="">				
			</p>
				<button type="submit" value="注册A" title="加入会员A">注册用户A</button>
				<hr>
				<p><span>Span_tagName</span></p>
				<p><a href="http://www.sina.com.cn" id="fwA">访问 新浪 网站</a></p>
				<p><a href="http://www.sina.com.cn" id="AAA">AA 新浪 网站</a></p>
				<p><a href="http://www.baidu.com" rel="nofo"></a></p>
				<p><a href="logout">我是a标签A</a></p>
				<p><a href="www.taobao.com" rel="">退出</a></p>
				<hr>
				<p>
					<select name="selecta" id="selectA">
						<option value="bj">A北京</option>
						<option value="sh">A上海</option>
						<option value="gz">A广州</option>
						<option value="cq">A重庆</option>
					</select>
				</p>
				<hr>
				<form action="">
					<label for=""><input type="radio" name="fruit" value="pga" id="pga">A苹果</label>
					<label for=""><input type="radio" name="fruit" value="jza" id="jza">A橘子</label>
					<label for=""><input type="radio" name="fruit" value="xja" id="xja">A香蕉</label>
					<label for=""><input type="radio" name="fruit" value="lia" id="lia" checked="">A梨</label>
					<label for=""><input type="radio" name="fruit" value="xga" id="xga">西瓜</label>
				</form>
				<form action="">
					<input type="checkbox" name="checkbox" value="汽车" id="qcA">汽车A<br>
					<input type="checkbox" name="checkbox" value="购物" id="gwA">购物A<br>
					<input type="checkbox" name="checkbox" value="旅游" id="lyA" readonly="">旅游A <br>
					<input type="checkbox" name="checkbox" value="音乐" id="yyA"disabled="">音乐A <br>
					<input type="button" value="取消A" disabled="" id="cancelA"><br>
					<input type="button" value="alerta" id="alerta" onclick="al()"> <br>
					<input type="file"  name="upfilea" value="">
				</form>
		</fieldset>		
	</div>
	<script>
		function al(){
			alert('我被被点击啦!')
		}
	</script>
</form>
<!-- <a href="http://www.sina.com.cn" target="myframe1">新浪</a>
<a href="http://www.hao123.com" target="myframe1">hao123</a>
<a href="http://www.taobao.com" target="myframe2">淘宝</a>
<a href="http://www.baidu.com" target="myframe2">百度</a><br>
<iframe src="http://www.baidu.com" frameborder="1" height="500" width="48%" name="myframe1"></iframe>
<iframe src="http://www.so.com" frameborder="1" height="500" width="48%" name="myframe2"></iframe>    -->
</body>
</html>

 八种定位方式

# 导selenium包
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

# 实例化浏览器对象
driver = webdriver.Chrome()

# 定义url,两种终止转移方法
# url = 'D:\\测试相关\\py\\自动化05期-007-Selenium常用定位方法\\html\\注册A.html'
url = r'D:\测试相关\py\自动化05期-007-Selenium常用定位方法\html\注册A.html'

# 打开url
driver.get(url)

# 1.通过 id 进行定位
# 第一种写法
# driver.find_element_by_id('userA').send_keys('admin')

# 第二种写法:
username = driver.find_element_by_id('userA')
username.send_keys('admin')

# 2.通过 name 定位
driver.find_element_by_name('userA').send_keys('test')

# 3.通过 classname 定位
driver.find_element_by_class_name('telA').send_keys('13110030262')

# find_element_by_tag_name() 返回符合条件的第一个元素
# 4.通过标签名定位 input 标签(符合条件的第一个元素是用户名编辑框)
driver.find_element_by_tag_name('input').send_keys('123')

# 5.通过全部文本内容,定位到链接元素,click()单击
driver.find_element_by_link_text('访问 新浪 网站').click()

# 6.通过部分文本内容,进行定位
driver.find_element_by_partial_link_text('访问').click()

# 7.通过xpath 进行定位
# xpath 绝对路径定位 p[1]-->fieldset 标签下第一个p标签
driver.find_element_by_xpath('/html/body/form/div/fieldset/p[1]/input').send_keys('xpath定位')

# xpath相对定位
driver.find_element_by_xpath('//*[@id="userA"]').send_keys('admin')

# 8.通过css选择器定位 ID为# classname为.
driver.find_element_by_css_selector('#userA').send_keys('admin')
driver.find_element_by_css_selector('.telA').send_keys('123456')

# 等待3秒
sleep(3)


# 第二种用法 需要导入BY模块
driver.find_element(By.CSS_SELECTOR,'#userA').send_keys('abc')

# 关闭浏览器
driver.quit()

等待时间

# 导selenium包
from selenium import webdriver
from time import sleep
#调用显式等待所需
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


# 实例化浏览器对象
driver = webdriver.Chrome()

# 定义url
url = r'D:\测试相关\py\自动化05期-007-Selenium常用定位方法\html\注册A.html'

# 打开url
driver.get(url)


# 1.强制等待3秒
sleep(3)

# 2.调用显式等待 10秒内未找到ID为'userA'的元素抛出异常
ele=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'userA')))
ele.send_keys('admin')

# 3.调用隐式等待
driver.implicitly_wait(10)

driver.find_element_by_id('userA1').send_keys('admin')




# 关闭浏览器
driver.quit()

弹窗

# 导selenium包
from selenium import webdriver
from time import sleep

# 实例化浏览器对象
driver=webdriver.Chrome()

# 定义url
url = r'D:\测试相关\py\自动化05期-007-Selenium常用定位方法\html\注册A.html'

# 打开url
driver.get(url)

driver.find_element_by_id('alerta').click()
# 转移到弹窗
btn=driver.switch_to_alert()
sleep(3)
# 获取按钮上的文本
print(btn.text)
# 调用方法-确定
btn.accept()

driver.find_element_by_id('userA').send_keys('admin')





# 等待3秒
sleep(3)

# 关闭浏览器
driver.quit()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值