自动化测试:Selenium-02-页面元素选择

1.网页页面元素


在UI自动化中,我们如何告知Chrome(或者其他)阅览器我们要如何操作页面呢?其实我们要我们是要操作网页的html元素,以百度为例,我们要在输入框输入"google",该如何操作呢?
step 1
我们可以通过 F12 打开阅览器的开发者工具栏,通过select工具查看网页元素属性。
请添加图片描述
Step 2
弄清元素特性后,通过selenium元素选择函数与操作函数进行元素操作

propertyOfSearchInpute = "//span/input[@id='kw']"
browser.find_element_by_xpath(propertyOfSearchInpute).send_keys('google')

运行结束后,我们可以看到在搜索框中出现了我们想要google。

2.元素选择函数


下面我列出了一下常用的selenium 选择函数。

2.1WebDriver 的8种基本元素定位方式

  • find_element_by_id()
  • find_element_by_name()
  • find_element_by_class_name()
  • find_element_by_xpath()
  • find_element_by_css_selector()
  • find_element_by_tag_name ()
  • find_element_by_link_text()
  • find_element_by_partial_link_text()

2.2 elements复数定位

该类函数返回的是list

  • id复数定位find_elements_by_id()
  • name复数定位find_elements_by_name()
  • class复数定位find_elements_by_class_name()
  • tag复数定位find_elements_by_tag_name()
  • link复数定位find_elements_by_link_text()
  • partial_link复数定位find_elements_by_partial_link_text()
  • xpath复数定位find_elements_by_xpath()
  • css复数定位find_elements_by_css_selector()

2.3 JS的5种定位方式总结

  • id定位:document.getElementById()
  • name定位:document.getElementsByName()
  • tag定位:document.getElementsByTagName()
  • class定位:document.getElementsByClassName()
  • css定位:document.querySelectorAll()
search_js = "document.getElementsByName('wd')[0].value='selenium';"
search_js2 = "document.querySelectorAll('.s_ipt')[0].value='selenium';"
button_js = "document.getElementById('su').click();"
button_js2 = "document.getElementsByClassName('s_btn')[0].click()"
browser.execute_script(search_js2)
browser.execute_script(button_js2)

3.模糊选择


有些时候,我们不知道元素特性的精确值,只知道其包含某个直段,这时我们就可以使用模糊选择,还是以百度为例,我们只知道搜索框的id为’*w’,那么现在我们该如何找到该元素呢?

通过contains匹配

propertyOfSearchInpute = "//span/input[contains(@id,'w')]"
browser.find_element_by_xpath(propertyOfSearchInpute).send_keys('google')

其他选择函数也有类似的选择,可以根据需求选择使用。(除了contains,其实我们也可以通过正则表达式来进行模糊定位,在这就不细说啦)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值