selenium自动化测试之定位大全

一、元素定位

1、通过id进行定位
find_element_by_id() 
2、通过name进行定位
find_element_by_name() 
3、通过class进行定位,class有多重属性时,只取其中一个
find_element_by_class_name() 
4、通过标签进行定位
find_element_by_tag_name() 
5、通过文本进行定位
find_element_by_link_text() 
6、通过部分文本进行定位
find_element_by_partial_link_text()  
7、通过路径进行定位
find_element_by_xpath() 
8、通过css进行定位
find_element_by_css_selector() 
9、通过复数属性定位
find_elements_by_xxx()[0] 

二、鼠标事件
1、右击
context_click()
2、双击
double_click()
3、拖动
drag_and_drop(source,target)
4、鼠标悬停
move_to_element()

三、键盘事件
1、删除键
send_keys(Keys.BACK_SPACE)
2、空格键
send_keys(Keys.SPACE)
3、制表键
send_keys(Keys.TAB)
4、回退键
send_keys(Keys.ESCAPE)
5、回车键
send_keys(Keys.ENTER)
6、全选
send_keys(Keys.CONTROL,'a')
7、复制
send_keys(Keys.CONTROL,'c')
8、剪切
send_keys(Keys.CONTROL,'x')
9、粘贴
send_keys(Keys.CONTROL,'v')
10、键盘F1
send_keys(Keys.F1)
11、键盘F5
send_keys(Keys.F5)
12、键盘F12
send_keys(Keys.F12)

四、iframe定位
1、通过iframe的id进行定位
driver.switch_to.frame("id")
2、没有id或id为动态变化值,通过标签定位
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)
3、若标签不唯一,使用复数定位
iframe = driver.find_elements_by_tag_name("iframe")[0]
driver.switch_to.frame(iframe)
4、索引定位,index
driver.switch_to.frame(index)
五、select定位
例子:
<select name="NR" id="nr">
<option value="10" selected="">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
</select>
1、通过内容定位
select_by_visible_text("每页显示50条") 

2、通过索引定位,下表从0开始,值为数字
select_by_index(1) 
3、通过value值进行定位,值为字符串
select_by_value("50") 

六、alert定位
问题:如何判断是否是alert弹框?
回答:在浏览器中打开弹框,箭头定位不到元素的则是alert,能定位到的则不是alert,用普通定位
步骤一:点击弹框按钮
js='$(".prefpanelgo").click()'
步骤二:执行js
driver.execute_script(js)
步骤三:切换到弹框窗口
al=driver.switch_to.alert
1、获取弹框上的文字
print(al.text)
2、点击确定
al.accept()
3、点击取消
al.dismiss()
4、输入框
al.send_keys("输入内容")

七、xpath定位
1、通过id定位
find_element_by_xpath(".//*[@id='xx']")
2、通过tag标签定位
find_element_by_xpath(".//input[@id='xx']")
3、通过class定位
find_element_by_xpath(".//*[@class='xx']")
4、通过name定位
find_element_by_xpath(".//*[@name='xx']")
5、组合定位
find_element_by_xpath(".//*[@id='xx' and @name='xx']")
6、绝对路径定位
find_element_by_xpath(".//*[@id='loginPanel']/div/table/tbody/tr[2]/td/input")
7、相对路径定位
find_element_by_xpath(".//*[@id='loginPanel']//tr[2]//input")
8、文本定位
find_element_by_xpath(".//*[text()='xxx']")
9、模糊匹配定位
.//*[contains(text(),'文本内容')]
.//*[contains(@id,'xx')]
10、模糊匹配以XX开头
.//*[starts-with(@id,'xx')]
.//*[starts-with(text(),'xx')]

说明:
1、 . 表示当前路径(可有可无)
2、 // 表示相对定位,匹配后面内容所有项
3、 * 表示获取全部标签
4、 .. 回到上级目录,与cmd命令一致
5、 and 连接两个属性

八、css定位
1、多个属性定位
find_element_by_css_selector("input#xxx[name='']")
2、层级定位
find_element_by_css_selector("table>tr>td")
3、复数定位,下标从1开始
find_element_by_css_selector(".mnav:nth-child(1)")
(1)通过id
find_element_by_css_selector("#xxx")
(2)通过class
find_element_by_css_selector(".xxx")
(3)通过标签
find_element_by_css_selector("input")
(4)通过其他属性
find_element_by_css_selector("[name='xxx']")

九、元素获取
1、获取文本
.text()
2、获取属性值
.get_attribute()
3、获取标签
.tag_name()
4、判断元素显示或隐藏
.is_displayed()
5、获取浏览器名称
print(driver.name)
6、获取元素size
.size

十、jquery定位
1、发送文本值
$("#kw").val("python")
2、清空文本
$("#kw").val("")
3、点击
$("#kw").click()

十一、js定位
1、通过id定位
document.getElementById("id")
2、通过name获取
document.getElementsByName("name")[0]
3、通过标签定位
document.getElementsByTagName("button")
4、通过class定位
document.getElementsByClassName("classname")
5、通过css选择器定位
document.querySelectorAll("css selector")


 

转载于:https://www.cnblogs.com/yudx/p/11225735.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值