测试开发——元素定位、元素操作

Webdriver元素定位基本方法

元素定位作用:从整个html页面上找到某个标签;让程序操作指定元素,就必须找到指定元素。

Webdriver元素定位方式有8种:

  1. id
  2. name
  3. class_name
  4. tag_name
  5. link_text
  6. partial_link_text
  7. Xpath
  8. Css

id定位 : find_element_by_id()

from selenium import webdriver
import time

driver=webdriver.Chrome()
url='http://aimaster.lenovo.com/login'
driver.get(url)
time.sleep(2)
#输入用户名
driver.find_element_by_id("userName").send_keys("wangxuan")
time.sleep(2)
#清除输入框内容
driver.find_element_by_id("userName").clear()
time.sleep(2)
#重新输入用户名
driver.find_element_by_id("userName").send_keys("wangxuan10")
time.sleep(2)
#输入密码
driver.find_element_by_id("pwd").send_keys("Wx10@2019")
time.sleep(2)

其中,调用id定位方法时,id名可以使用网页内检查查看,查看结果:
在这里插入图片描述

name定位 :find_element_by_name()
与id定位元素类似。

class_name定位 :find_element_by_class_name()
在这里插入图片描述
但同一class可能对应不同元素,此时不能通过class定位。

tag_name定位(标签): find_element_by_tag_name()

#点击登录(通过标签定位)
driver.find_element_by_tag_name("button").click()

标签,可以通过网页内检查查看,查看结果:
在这里插入图片描述
由上图可知,该登录按钮的标签为button。
但一般情况下,一个标签会对应多个元素,此时,不能使用标签定位元素。

link_text定位: find_element_by_link_text()

from selenium import webdriver
import time

driver=webdriver.Chrome()
driver.get("https://www.baidu.com/?tn=sitehao123_15")
driver.find_element_by_link_text("hao123").click()

运行结果为跳转到超链接所指网址。
在这里插入图片描述
检查网页中的href说明它是个超链接。

partial_link_text定位:find_element_by_partial_link_text()

driver.get("https://www.baidu.com/?tn=sitehao123_15")
driver.find_element_by_partial_link_text("ao123").click()

超链接的字符串可能比较长,如果输入全称的话,会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串就可以了。

XPath定位 :driver.find_element_by_xpath()
以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决。

理解XPath:
XPath即为XML Path的简称,它是一种用来确定XML/HTML文档中某部分位置的语言。HTML可以看做是XML的一种实现,所以Selenium用户可以
Xpath用途:
基于HTML文档结构使用XPath进行元素定位。
通俗理解:
如果一个元素,它的属性不是很明显,无法直接定位到,这时候我们可以先找它老爸(父元素),要是它老爸的属性也不是很明显,就找它爷爷;如果一个元素兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟,但是出生是有先后的,可以通过它在家里的排行老几定位到(xpath定位的索引从1开始)。

查看XPath:
(1)Chrome中查看:
定位到某个元素,选中检查页面中相应代码右击,选中copy,再选择copy full xpath。
(2)Firefox中查看:
点击右上角Firebug按钮,点击查看页面中元素,定位到某元素,在xpath框中可查看到该元素xpath。

driver.find_element_by_xpath("//*[@id='root']/section/main/div/form/div[3]/div/div/span/button").click()

Css定位:find_element_by_css_selector()
查看css路径:
(1)Chrome中查看:
(2)Firefox中查看:
与查看XPath类似,将选项xpath改为css即可。

CSS定位语法比XPath更为简洁、灵活,而且CSS定位的速度还比XPath快,推荐使用CSS定位。

Css其他定位方法:Css定位方法

  1. 属性定位
  2. 标签与属性组合定位
  3. 层级关系定位

定位一组元素
定位一组元素

操作元素(键盘和鼠标事件)

简单操作
1 点击页面按钮:click()
2 清空输入框:clear()
3 输入字符串:send_keys()

submit提交表单
submit()一般模拟回车键

键盘操作
1 先导入键盘模块
2 模拟enter键 send_keys(Keys.ENTER)
3 其他常见的键盘操作:
键盘f1-f12:send_keys(Keys.F1)
复制Ctrl+C:send_keys(Keys.CONTROL,‘c’)
粘贴Ctrl+V:send_keys(Keys.CONTROL,‘v’)
全选Ctrl+A: send_keys(Keys.CONTROL,‘a’)
剪切Ctrl+X:send_keys(Keys.CONTROL,‘x’)
制表键Tab:sen_keys(Keys.TAB)

鼠标事件
1 先导入模块
from selenium.webdriver.common.action_chains import ActionChains
2 perform()执行所有ActionChains()中的行为:
鼠标悬停:move_to_element()
右击鼠标:context_click()
双击鼠标:double_click()
3 例:在百度页面将鼠标悬浮于设置按钮上

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver=webdriver.Firefox()
url='https://www.baidu.com/index.php?tn=monline_3_dg'
driver.get(url)
driver.implicitly_wait(10)
mouse=driver.find_element_by_link_text("设置")
#鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(mouse).perform()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值