Web Element的属性和方法
在selenium中,Web Element对象提供了许多属性和方法来和页面上的元素进行交互;比如下面几个
- 属性
- id,表示该元素的内部标识符
- size,返回元素的宽度、高度;像素单位
- rect,返回元素的宽高和坐标信息;
- x,y;元素左上角相对于页面左上角的坐标
- width、height;元素的宽度和高度
- tag_name;返回元素的标签名称
- text;返回元素的可见文本内容;包括子元素的文本
- 方法
- send_keys();输入框输入文本、模拟键盘操作
- clear(),情况输入框或文本区域内容
- click();单击元素
- get_attribute();获取元素的HTML属性值(id、href、value等等)
- is_selected();检查元素是否被选中;返回True、False
- is_enabled();检查元素是否可交互;返回True、False
- is_displayed();检查元素在页面上是否可见;返回True、False
- value_of_css_property();获取元素css的属性值(color、font-size、display等)
上面就是常见的一些属性和方法了,当然还有一些其他的;就不一一展示了;需要自己私下去研究
下面废话不多说,开始操练起来
id
- element = browser.find_element(By.ID,'kw')
- print(element.id)
- # f.121AC56FA78A2FF7D42F1F24490E61E2.d.768EC4E5CE47215279360D8DBAC35389.e.6
- # 获取元素的id属性
- print(element.get_attribute('id')) # kw
复制代码 size
- # 返回元素的宽高
- element = browser.find_element(By.ID,'kw')
- print(element.size) # {'height': 44, 'width': 550}
- print(element.size['width']) # 550
复制代码 rect
- # 返回元素的宽高和坐标信息
- element = browser.find_element(By.ID,'kw')
- print(element.rect) # {'height': 44, 'width': 550, 'x': 298, 'y': 294}
复制代码 tag_name
- # 返回元素的标签名
- element = browser.find_element(By.ID,'kw')
- print(element.tag_name) # input
复制代码 text
- # + text;返回元素的可见文本内容;包括子元素的文本
- # + 如果元素是隐藏不可见的;可能返回空字符串
- element = browser.find_element(By.ID,'s-usersetting-top')
- print(element.text) # 设置
复制代码 send_keys()
- element = browser.find_element(By.ID, 'kw')
- # 输入内容
- element.send_keys('selenium')
- time.sleep(3)
- # 模拟回车操作
- element.send_keys(Keys.ENTER)
- time.sleep(3)
复制代码 clear()
- # 清空输入框内容,再输入其它的
- element.clear()
- time.sleep(3)
- element.send_keys('python')
- time.sleep(3)
复制代码 click()
- # 首先找到需要点击的元素
- button = browser.find_element(By.ID,'su')
- button.click()
- time.sleep(3)
复制代码 get_attribute()
- # 获取元素的属性值
- button = browser.find_element(By.ID,'su')
- print(button.get_attribute('value')) # 百度一下
复制代码 is_selected()
- 这里我为了演示方便,用了下面这个站点;可以看的更加清楚
- url_demo = r'http://www.自动化测试.com/demo/checkbox'
- browser.get(url_demo)
- # 找到所有Input标签,遍历输出是否是被选中的状态
- elements = browser.find_elements(By.TAG_NAME,'input')
- for element in elements:
- print(element.is_selected())
- """
- False
- False
- False
- """
- # 对第二个进行勾选,其实就是点击一下那个小方块
- elements[1].click()
- # 再次遍历他们的状态
- for element in elements:
- print(element.is_selected())
- """
- False
- True
- False
- """
复制代码 is_enabled()
- # is_enabled()检查元素是否可交互;返回True、False
- url_demo = r'http://www.自动化测试.com/demo/checkbox'
- browser.get(url_demo)
- elements = browser.find_elements(By.TAG_NAME,'input')
- for element in elements:
- print(element.is_enabled())
- """
- True
- True
- True
- """
- time.sleep(3)
- # 这里我使用了js把第二个框给置灰不可选择了
- browser.execute_script("arguments[0].disabled = true;", elements[1])
- time.sleep(5)
- # 发现第二个输出为False了
- for element in elements:
- print(element.is_enabled())
- """
- True
- False
- True
- """
复制代码 is_displayed()
- # + is_displayed();检查元素在页面上是否可见;返回True、False
- browser.get("https://the-internet.herokuapp.com/dynamic_loading/1")
- hidden_element = browser.find_element(By.ID, "finish")
- print(hidden_element.is_displayed()) # False(初始状态)
- browser.find_element(By.ID, "start").find_element(By.TAG_NAME, "button").click()
- # # 等待元素显示后再次检查
- time.sleep(10)
- print(hidden_element.is_displayed()) # True
复制代码 value_of_css_property()
- # + value_of_css_property;获取元素css的属性值(color、font-size、display等)
- url_demo = r'http://www.自动化测试.com/demo/button'
- browser.get(url_demo)
- elements = browser.find_elements(By.TAG_NAME, 'button')
- print(elements[0].value_of_css_property('color')) # rgba(255, 255, 255, 1)
复制代码 好了,Web Element的一些常用属性、方法就先介绍到这里了;剩下的一些可以私下自己练习练习
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |