码迷,mamicode.com
首页 > 其他好文 > 详细

selenium 元素查找背后的属性

时间:2019-08-09 15:23:51      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:ext   _id   one   单选框   ref   cti   sleep   select   其他   

1.首先你要安装selenium库啦

pip install selenium

2.selenium查找元素就八种方法

from selenium import webdriver

driver=webdriver.Chrome()

#说明find_elements_by 多了一个s,返回的就是一个列表形式

 

1) driver.find_element_by_id()      #传入元素标签对里面的id数据    driver.find_element_by_id("kw")   

2) driver.find_element_by_name()   #传入元素标签对里面的name数据    driver.find_element_by_name("wd")   

3)driver.find_element_by_class_name()    #传入元素标签对里面class的名称    driver.find_element_by_class_name("s_ipt")   

技术图片

4) driver.find_elements_by_link_text()   #传入元素标签对a里面的文本数据    driver.find_elements_by_link_text("hao123")   

5) driver.find_element_by_partial_link_text()     #传入元素标签对a里面的部分文本数据    driver.find_element_by_partial_link_text("hao")   

6) driver.find_element_by_tag_name()     #传入元素标签对的标签名    driver.find_element_by_tag_name("a")   

#后面这两种百度很多自己去拓展

7) driver.find_element_by_xpath()  

8) driver.find_element_by_css_selector() 

3.查找元素返回WebElement对象背后的属性(以id为例子)

技术图片

1)返回元素属性值

1 ele=driver.find_element_by_id("kw").get_attribute("class")
2 print(ele)
结果:s_ipt

2)返回元素属性值,但是该方法只能获取元素中id或name的属性值,其他的都不能获取

 1 ele=driver.find_element_by_id("kw").get_property("id")
 2 print(ele)
 3 ele1=driver.find_element_by_class_name("s_ipt").get_property("id")
 4 print(ele1)
 5 ele2=driver.find_element_by_id("kw").get_property("name")
 6 print(ele2)
 7 ele3=driver.find_element_by_class_name("s_ipt").get_property("name")
 8 print(ele3)
 9 ele4=driver.find_element_by_class_name("s_ipt").get_property("class")  #这种是不行的返回None
10 print(ele4)
结果:

kw
kw
wd
wd
None

property是DOM中的属性,是JavaScript里的对象;attribute是HTML标签上的特性,它的值只能够是字符串;

3)返回内部存储id,这个属性用于判断两个webelements是否引用同个元素

1 ele=driver.find_element_by_id("kw").id
2 print(ele)
3 ele1=driver.find_element_by_name("wd").id
4 print(ele1)
结果:因为都是引用同一个标签对里面的数据所以id肯定一样

0.822772467010251-1
0.822772467010251-1

4)返回标签对的名称

1 ele=driver.find_element_by_id("kw").tag_name
2 print(ele)
结果:input

5)判断元素是否可见(返回bool值)

1 ele=driver.find_element_by_id("kw").is_displayed()
2 print(ele)
结果:True

技术图片

6)判断元素是否被选中(一般用于单选框或者复选框)

 1 from  selenium import webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 driver=webdriver.Chrome()
 4 driver.get("http://www.baidu.com")
 5 ele=driver.find_element_by_xpath(//a[@name="tj_login"]/following-sibling::a[text()="设置"])
 6 ActionChains(driver).move_to_element(ele).perform()
 7 driver.find_element_by_class_name("setpref").click()
 8 time.sleep(3)
 9 a=driver.find_element_by_id("sh_2").is_selected()  
10 print(a)
11 driver.quit()
结果:True

7)判断元素是否存在HTML上(is_displayed()本身这个函数用于判断某个元素是否存在页面上(这里的存在不是肉眼看到的存在,而是html代码的存在,很少用到)

1 from selenium import webdriver
2 driver=webdriver.Chrome()
3 driver.get("http://www.baidu.com")
4 a=driver.find_element_by_id(su).is_displayed()
5 print(a)
6 driver.quit()
结果:True

 

selenium 元素查找背后的属性

标签:ext   _id   one   单选框   ref   cti   sleep   select   其他   

原文地址:https://www.cnblogs.com/hao2018/p/11285827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!