Python+Selenium自动化测试 3. WebElement API介绍

目录

一 WebElement介绍

二 元素操作

1. clear  # 清除文本

2. send_keys()  # 模拟按键输入

3. click() #点击元素

4. submit()  提交

5. size: #大小

三 获取元素属性

1. text  # 元素本身文字

2. get_attribute()   # 获得元素特性

3. get_property  # 获得元素的属性

         4. tag_name 

四 元素判断

1. is_displayed()  # 判断元素是否显示

2. is_selected()  # 判断元素是否选中状态

3. is_enable()    # 是否enable

location_once_scrolled_into_view() 

location()

rect:   元素的大小和位置的字典


 

一 WebElement介绍

源码:

Python+Selenium自动化测试 3. WebElement API介绍

表示DOM元素。

     通常,与文档交互的所有有趣操作都将是通过此界面执行。

     所有方法调用都会进行最新的检查以确保元素参考仍然有效。 这基本上决定了是否元素仍然附加到DOM。 如果此测试失败,  那么抛出``StaleElementReferenceException``,以及将来所有的调用实例将失败。“”

 

二 元素操作

  1. clear()   清除文本
  2. send_keys(*value)  模拟按键输入
  3. click()  点击元素

1. clear  # 清除文本

Python+Selenium自动化测试 3. WebElement API介绍

2. send_keys()  # 模拟按键输入

Python+Selenium自动化测试 3. WebElement API介绍

3. click() #点击元素

Python+Selenium自动化测试 3. WebElement API介绍

例子:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.126.com")
driver.find_element_by_id("idInput").clear()
driver.find_element_by_id("idInput").send_keys("username")
driver.find_element_by_id("pwdInput").clear()
driver.find_element_by_id("pwdInput").send_keys("password")
driver.find_element_by_id("loginBtn").click()
driver.quit()

4. submit()  提交

Python+Selenium自动化测试 3. WebElement API介绍

例子:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.youdao.com")
driver.find_element_by_id('query').send_keys('hello')
# 提交
driver.find_element_by_id('query').submit()
driver.quit()

5. size: #大小

Python+Selenium自动化测试 3. WebElement API介绍

例子:

#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
#获得输入框的尺寸
size=driver.find_element_by_id('kw').size
print size

 

三 获取元素属性

(1)简单说,get_property 就是取元素属性的,该元素有id,有name,就可以通过该方法取;

(2)get_attribute("value"),就是去文本框中输入的内容。

(3).text 属性,就是元素本身的文字显示。
 

1. text  # 元素本身文字

Python+Selenium自动化测试 3. WebElement API介绍

例子:

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
text = driver.find_element_by_id("setf").text
print text

结果:

Python+Selenium自动化测试 3. WebElement API介绍

 

2. get_attribute()   # 获得元素特性

返回的是元素的特性,可以返回id,name,type以及其他任意的元素属性,如果没,则返回None

Python+Selenium自动化测试 3. WebElement API介绍

例子:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

#返回元素的属性值,可以是 id、name、type 或元素拥有的其它任意属性
attribute=driver.find_element_by_id("kw").get_attribute('type')
print attribute

结果:

Python+Selenium自动化测试 3. WebElement API介绍

3. get_property  # 获得元素的属性

Python+Selenium自动化测试 3. WebElement API介绍

4. tag_name 

Python+Selenium自动化测试 3. WebElement API介绍

例子:

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
tag = driver.find_element_by_id("kw").tag_name
print tag

结果:

Python+Selenium自动化测试 3. WebElement API介绍

四 元素判断

1. is_displayed()  # 判断元素是否显示
Python+Selenium自动化测试 3. WebElement API介绍

例子:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

#返回元素的结果是否可见,返回结果为 True 或 False
result=driver.find_element_by_id("kw").is_displayed()
print result

返回结果:

Python+Selenium自动化测试 3. WebElement API介绍

2. is_selected()  # 判断元素是否选中状态

Python+Selenium自动化测试 3. WebElement API介绍

例子:

# coding:utf-8
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
browser.maximize_window()
time.sleep(1)
browser.find_element_by_xpath("//div[@id='u1']/a[@name='tj_login']").click()  # 找到登录按钮并点击
time.sleep(1)  
    # is_selected():判断元素是否被选中,结果为一个布尔值,True或False
    if browser.find_element_by_xpath("//p[@id='TANGRAM__PSP_10__memberPassWrapper']/input").is_selected():
        print("默认已选中...")
    else:
        print("默认未选中...")

3. is_enable()    # 是否enable

Python+Selenium自动化测试 3. WebElement API介绍

例子:

driver.find_element_by_id("iptPassword").is_enabled()

 

location_once_scrolled_into_view() 

Python+Selenium自动化测试 3. WebElement API介绍

 

location()

Python+Selenium自动化测试 3. WebElement API介绍

获取元素左上角的坐标

用法 driver.element.location

'''返回element的x坐标, int类型'''

driver.element.location.get('x')

'''返回element的y坐标, int类型'''

driver.element.location.get('y')

 

rect:   元素的大小和位置的字典

Python+Selenium自动化测试 3. WebElement API介绍