2022.5.20 selenium
selenium中定位元素的方式
1.通过name定位。
2.通过id定位。
3.通过class定位。
4.通过标签名(tag_name)定位。
5.通过css定位。
1)简单定位:copy selector
2)根据id属性 选择元素的语法是在id号前面加上一个井号: #id值
eg:element = wd.find_element(By.CSS_SELECTOR, '#searchtext')
3)根据class属性 选择元素的语法是在 class 值 前面加上一个点: .class值
eg:element = wd.find_element(By.CSS_SELECTOR, '.animal') animal是一个class值
4)如果元素2 是元素1 的 直接子元素, CSS Selector 选择子元素的语法是这样的 元素1 > 元素2
中间用一个大于号 (我们可以理解为箭头号)注意,最终选择的元素是 元素2,并且要求这个 元素2 是 元素1 的直接子元素
如果>换成“ ”,那么要求元素2为元素1的后代元素 (元素1 元素2)
eg:element = wd.find_element(By.CSS_SELECTOR, '.animal > .div')
5)css 选择器支持通过任何属性来选择元素,语法是用一个方括号 [ ]。
eg:element = wd.find_element(By.CSS_SELECTOR, '[href="http://www.miitbeian.gov.cn"]')
属性前面可以加上标签名的限制,比如div[class='SKnet'] 表示 选择所有 标签名为div,且class属性值为SKnet的元素。
CSS 还可以选择 属性值包含某个字符串的元素比如, 要选择a节点,里面的href属性包含了 miitbeian 字符串,就可以这样写
a[href*="miitbeian"]
还可以 选择 属性值 以某个字符串 开头 的元素比如, 要选择a节点,里面的href属性以 http 开头 ,就可以这样写
a
[href^="http"]
还可以 选择 属性值 以某个字符串结尾的元素比如, 要选择a节点,里面的href属性以 gov.cn 结尾 ,就可以这样写
a[href$="gov.cn"]
如果一个元素具有多个属性<div class="misc" ctype="gun">沙漠之鹰</div>
CSS 选择器 可以指定 选择的元素要 同时具有多个属性的限制,像这样 div[class=misc][ctype=gun]
6.通过xpath定位
7.使用超链接全文本定位。
8.使用超链接部分文本定位部分元素。
eg:print(driver.find_element_by_link_text('唐•李白').get_attribute('value'))
三种简单的验证方法
1.is_displayed():验证控件是否在节目显示出来,如果该控件在界面是显示则该方法的返回值是True,否则是False
2.is_enabled():验证控件是否可以编辑,如果可以编辑则该方法返回True,否则False
3.is_selected():验证某个控件是否被选中,如果选中则返回True,否则返回False