selenium Web控件定位
Web控件定位与常见操作:
xpath
css
selenium的点击与输入:click()、send_keys()
1.xpath
缺点:速度慢,因为它是从头到尾一点点遍历到的
优点:万能定位方式
1)
/代表子元素,相当于上一个元素的儿子; 可以定位到它的孩子,但是定位不到它的孙子;
比如:$x('//*[@id="s_tab"]//b’),还可以用$x('//*[@id="s_tab"]/b’),但是如果是好几层 这样就找不到了
//代表所有元素 ,相当于当前元素的子子孙孙
//* 一般以这个开头,代表当前页面的子子孙孙
2)定位方式:在chrome控制台下输入
Console->clear( )先清空一下原有信息
$x('//*[@id="s_tab"]//b')【xpath在控制台运行方式$x()】
点击b元素,就可以定位到【网页】的位置
如下: 定位全部,定位第一个,最后一个,倒数第二个
一般来说id和name属性都是唯一的,这是前端工程师约定俗成的事情,并不是绝对的
❗️其核心: 具体操作就是先定位父元素,在去找子元素,或者子子元素
2. Css Selector
appium原生的控件是不支持Css Selector的,只支持xpath,h5的页面是可以支持的
如下图使用css选择器定位元素
$('#s_tab b’)
$('[id=su]’)
查找资讯、网页,a标签,如果括号中为1就找不到了,是第二个孩子,不是第一个孩子
$('#s_tab a:nth-child(2)’)
$('#s_tab a:nth-last-child(1)’)其中空格代表子孙子子孙孙,而>代表子元素,#换成id也是一样的,表示的一样
By.ID查看源码
#By.ID查看源码 from selenium.webdriver.common.by import By self.driver.find_element(By.ID, "su")
find_element_by_link_text()方法其实就是对find_element进行了一层封装